您现在所在的是:

机器人论坛

回帖:22个,阅读:8925 [上一页] [1] [2] [3] [下一页]
16168
zrx517697809
文章数:6262
年度积分:50
历史总积分:16168
注册时间:2014/3/28
发站内信
2018论坛热心网友
三菱电机活动(三)
寻找英威腾(三)
发表于:2018/10/30 8:27:09
#0楼
现在整体结构搭建好了,开始调试,在机器人打开通讯通道的时候,PLC侧的通讯标志位也会有信号,关闭之后,PLC侧就会报通讯错误,这么来讲通讯应该是成功了。昨天折腾了半天,发现由机器人向PLC发送数据,PLC侧可以接收到数据,机器人读取PLC数据机器人侧就会出现通讯超时,无法读取数据。
手册上介绍ChkNet(201) > 0为通讯成功,ChkNet(201) < 0为通讯失败,我检测发现ChkNet(201) = 0,这是哪里问题,请使用过的指点一二,感激不尽!
[此贴子已经被作者于2018/10/30 10:56:50编辑过]
7968
蜀中之首
文章数:5230
年度积分:50
历史总积分:7968
注册时间:2018/5/27
发站内信
发表于:2018/10/30 10:31:24
#1楼
首先声明,没使用过
用的485口?
类似的我一般,先用电脑做工具调试
可能PLC没在接收状态,或返回的数据不符合机器人要求
16168
zrx517697809
文章数:6262
年度积分:50
历史总积分:16168
注册时间:2014/3/28
发站内信
2018论坛热心网友
三菱电机活动(三)
寻找英威腾(三)
发表于:2018/10/30 10:56:30
#2楼
回复 #1楼 蜀中之首
用的以太网
14813
liuhuoaaa
文章数:8568
年度积分:50
历史总积分:14813
注册时间:2007/6/11
发站内信
发表于:2018/10/31 20:39:29
#3楼
把你的程序贴出来看看
14813
liuhuoaaa
文章数:8568
年度积分:50
历史总积分:14813
注册时间:2007/6/11
发站内信
发表于:2018/10/31 20:42:53
#4楼
Function TIPIP

SetNet #201, "192.168.71.30", 1003, CRLF, NONE, 0  '设置端口参数
       OpenNet #201 As Client

   Print "等待连接端口201"
   WaitNet #201 '等待201网络端口连接成功
   Print "端口201已连接"

     Do
        If ChkNet(201) > 0 Then                    '如果大于零为有数据
Read #201, plc$, ChkNet(201)        '读取201端口中的数据
' Print code$
ok_plc = Val(plc$)                 '将由数字组成的字符串转换为数值。
' Print "ok_plc=", ok_plc
    ElseIf ChkNet(201) < 0 Then
   Print "网络连接中断。请重新连接"
   CloseNet #201
   OpenNet #201 As Client '打开201网络端口
Print "等待连接端口201"
WaitNet #201 '等待201网络端口连接成功
Print "端口201已连接"
   EndIf

     If InData <> 0 Then    '机械手向PLC发送数据,数据的值赋值在 InData$里
Print #201, InData
    InData = 0
   EndIf
Loop
   CloseNet #201                                 '关闭201网络端口


Fend
4918
MIC小赖
文章数:1582
年度积分:56
历史总积分:4918
注册时间:2015/9/16
发站内信
发表于:2018/10/31 21:37:29
#5楼
'==============================================
'
'
'                 PLC通讯程序
'
'
'==============================================
'PLC信息:192.168.10.210:8100

Global String G_PLC_WriteData$
Global Integer PLC_CharLength, PLC_DataArrayLength
Global String G_PLC_ReadData$, G_PLC_DataArray$(3), G_PLClinshi$, G_PLClinshi2$
String PLC_ReadData_Array$(0)
String PLC_LINSHI$
Global Real G_PLC_CoordinateArray(1), NetSts
Function PLC_Communication
   Do
       NetSts = ChkNet(201)
   If (NetSts < 0) Then                                                                   '如果链接未建立链接
       CloseNet #201                                                                      '关闭端口#201 0.5秒
       Wait 0.5
       OpenNet #201 As Client                                                             '打开端口#201 作为客户端
       WaitNet #201                                                                       '等待端口#201 通讯链接ONLINE
       Print "[", Time$, "] PLC<==>Load-RB 已连接!"
       If ChkNet(203) <> -3 Then
MemOn M_PLC_LinkON
Else
MemOff M_PLC_LinkON
EndIf
   EndIf

If MemSw(M_RW_PLC) = On Then                                                       '等待PLC数据发送标志位ON
Print #201, G_PLC_WriteData$                                                   '通过端口#201 将字符串G_PLC_WriteData$发送出去
Print "[", Time$, "] RB1-->PLC Data is:", G_PLC_WriteData$
G_PLC_WriteData$ = ""
      MemOff M_RW_PLC
EndIf
       If (NetSts > 0) Then                                                               '端口#201接受到信息时
           PLC_CharLength = ChkNet(201)                                                   '获取字符串长度
           G_PLC_ReadData$ = ""
        Read #201, G_PLC_ReadData$, PLC_CharLength                                     '按照字符串长度读取#201接受缓存中的内容至G_PLC_ReadData$
        Print "[", Time$, "] PLC-->RB1 Data is:", G_PLC_ReadData$
        Call PLC_Dispose                                                               '跳转至PLC数据处理程序
       EndIf
Loop
Fend
4918
MIC小赖
文章数:1582
年度积分:56
历史总积分:4918
注册时间:2015/9/16
发站内信
发表于:2018/10/31 21:39:03
#6楼
'==============================================
'
'
'         Unload插头定位及精定位通讯程序
'
'
'==============================================
'CCD主机信息:192.168.10.254:203
Integer i, j, k, CCD_CharLength, CCD_DataArrayLength
Global String G_CCD_WriteData$, G_CCD_ReadData$
String CCD_ReadData_Array$(0)
String toks$(0), strPre$(6)
Integer e
String CCD_LINSHI$
Function CCD_Communication

Do

If ChkNet(202) = -3 Then
       CloseNet #202
OpenNet #202 As Server
WaitNet #202, 20
If TW Then
 MemOn M_CCD_ConnLostTP
 Error CCD1_ConnLost
Else
 MemOff M_CCD_ConnLostTP
 Print "[", Time$, "] PC<==>Unload-RB 已连接!"
EndIf
EndIf


If ChkNet(202) <> -3 Then
MemOn M_CCD_LinkON
Else
MemOff M_CCD_LinkON
EndIf



If MemSw(M_RW_CCD) = On Then

Print #202, G_CCD_WriteData$
Print "[", Time$, "] RB-->CCD Data is:", G_CCD_WriteData$
G_CCD_WriteData$ = ""
      MemOff M_RW_CCD
Call CCD_Deliverys
EndIf
Loop

Fend
16168
zrx517697809
文章数:6262
年度积分:50
历史总积分:16168
注册时间:2014/3/28
发站内信
2018论坛热心网友
三菱电机活动(三)
寻找英威腾(三)
发表于:2018/11/5 11:59:02
#7楼
回复 #6楼 MIC小赖
谢谢,前两天回老家了,回头再试试
351
SmallDreamer
文章数:1
年度积分:50
历史总积分:351
注册时间:2018/11/26
发站内信
发表于:2018/11/26 16:57:45
#8楼
回复 #7楼 zrx517697809
有没有试过PLC不写程序,机器人直接通过协议去主动读取或写入?
16168
zrx517697809
文章数:6262
年度积分:50
历史总积分:16168
注册时间:2014/3/28
发站内信
2018论坛热心网友
三菱电机活动(三)
寻找英威腾(三)
发表于:2018/11/27 8:20:12
#9楼
回复 #8楼 SmallDreamer
没有,通讯也成功了,但是当第二次PLC向机器人发送数据的时候机器人接收的都是0,用调试助手调试双方都是正常的,最后放弃了,改成IO对接,又接了好多线

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006