雅马哈与上位机TCP通讯 点击:1089 | 回复:1



DAFSE

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:33帖 | 1回
  • 年度积分:0
  • 历史总积分:135
  • 注册:2018年8月23日
发表于:2020-12-01 09:00:46
楼主

                    雅马哈与上位机TCP通讯


1.0 可以先用调试助手测试,先设定电脑IP以及雅马哈控制器IP,系统--通信设置,设置控制器的IP

image.png

1.1 在选项--通用以太网端口,设置GP0(通讯对象),模式伺服,通讯对象的IP,端口1004,改行符CRLF,这里要注意了,有换行符的0A 0B为换行符,不添加会不识别的

image.png

1.2 刚才在控制器那端,设置的通讯对象为伺服端,那控制器就是客户端,在调试助手这里,设置的对象就是控制器端,所有协议类型为客户端TCP Client,所有这里设置的是控制器的IP和端口,注意跟控制设置的IP端口一致

image.png

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)就要补零,要么上位机相机补零,要么机器人控制器识别字符或者分隔符,雅马哈是不能识别分隔符的,而爱普生是可以的,有识别分隔符指令会简单点不用补零,识别字符的话会比较麻烦.所以雅马哈的话最好时上位机补零后发送到机器人,

image.png

了解最新工控PLC,上位机,机器人,通讯等实例测试笔记~~请关注百家号或头条号--老王工控笔记





楼主最近还看过



COC小巢

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 87回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2017年7月17日
发表于:2021-01-19 09:34:15
1楼

新人,感谢楼主


热门招聘
相关主题

官方公众号

智造工程师