雅马哈与上位机TCP通讯
1.0 可以先用调试助手测试,先设定电脑IP以及雅马哈控制器IP,系统--通信设置,设置控制器的IP
1.1 在选项--通用以太网端口,设置GP0(通讯对象),模式伺服,通讯对象的IP,端口1004,改行符CRLF,这里要注意了,有换行符的0A 0B为换行符,不添加会不识别的
1.2 刚才在控制器那端,设置的通讯对象为伺服端,那控制器就是客户端,在调试助手这里,设置的对象就是控制器端,所有协议类型为客户端TCP Client,所有这里设置的是控制器的IP和端口,注意跟控制设置的IP端口一致
1.3 具体代码如下:
*CONNECT:
DQ2$="trigger,"+"1"+","+"1" '--------DQ$为字符串,DQ!为实数,DQ%为整数类型
A$="" '--------字符串清空
SEND DQ2$ TO GP0'-----------------------GP0为通信端,触发上相机1拍照{取料拍照}
SEND GP0 TO A$'---------------接收端,当通讯GP在前面就为接收,否则为发送,A$为字符串
OK$=MID$(A$,1,1) '----------读取A$从第1个开始的1个字符,赋值给OK$
'
IF OK$="1" THEN
X!=VAL(MID$(A$,3,8))'-----一般都为8个字节,VAL为字符串转换成实数
Y!=VAL(MID$(A$,12,8))
R!=VAL(MID$(A$,21,8))
LOC1(P2)=X! '--------把实数X!传送给P2点位的第一轴坐标
LOC2(P2)=Y!
LOC4(P2)=R!
LOC3(P2)=50
GOTO *MAIN
ELSE
DELAY 5000
GOTO *CONNECT
HALT
ENDIF
1.4 如下图,如果相机发送1,-100.340,223.4500,23.56000,0,那我收到的第一个字符就是1,第二个就是,第三个就是-,以此类推。这里要注意要知道机器人坐标的最大数值,这里雅马哈的最大位数连上+-和小数点.是8位字符,所以每个坐标都要满8位,如果坐标不满(可能10.12也有可能是100.12)就要补零,要么上位机相机补零,要么机器人控制器识别字符或者分隔符,雅马哈是不能识别分隔符的,而爱普生是可以的,有识别分隔符指令会简单点不用补零,识别字符的话会比较麻烦.所以雅马哈的话最好时上位机补零后发送到机器人,
了解最新工控PLC,上位机,机器人,通讯等实例测试笔记~~请关注百家号或头条号--老王工控笔记
楼主最近还看过