登录
首页 机器人论坛
回帖 发帖
正文

主题:继续求助爱普生机器人与FX5U以太网通讯问题

点击:9174 回复:22

现在整体结构搭建好了,开始调试,在机器人打开通讯通道的时候,PLC侧的通讯标志位也会有信号,关闭之后,PLC侧就会报通讯错误,这么来讲通讯应该是成功了。昨天折腾了半天,发现由机器人向PLC发送数据,PLC侧可以接收到数据,机器人读取PLC数据机器人侧就会出现通讯超时,无法读取数据。
手册上介绍ChkNet(201) > 0为通讯成功,ChkNet(201) < 0为通讯失败,我检测发现ChkNet(201) = 0,这是哪里问题,请使用过的指点一二,感激不尽!
最后修改:2018/10/30 10:56:50
18-10-30 08:27
首先声明,没使用过
用的485口?
类似的我一般,先用电脑做工具调试
可能PLC没在接收状态,或返回的数据不符合机器人要求
18-10-30 10:31
用的以太网
18-10-30 10:56
把你的程序贴出来看看
18-10-31 20:39
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
18-10-31 20:42
'==============================================
'
'
'                 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
18-10-31 21:37
'==============================================
'
'
'         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
18-10-31 21:39
谢谢,前两天回老家了,回头再试试
18-11-05 11:59
有没有试过PLC不写程序,机器人直接通过协议去主动读取或写入?
18-11-26 16:57
没有,通讯也成功了,但是当第二次PLC向机器人发送数据的时候机器人接收的都是0,用调试助手调试双方都是正常的,最后放弃了,改成IO对接,又接了好多线
18-11-27 08:20

上一页下一页

工控新闻

更多新闻资讯