trio通过modbustcp连接信捷触摸屏 点击:1125 | 回复:2



哈斯基

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:8帖 | 8回
  • 年度积分:0
  • 历史总积分:149
  • 注册:2020年4月06日
发表于:2020-05-19 18:17:49
楼主

Ps:本来是要用R232连接的,但发现信捷自带R232线的DIN8定义和TRIO的不一样,而现在DIN8的线都是一体的,很难拆了重焊(拆废了一根),就试了下MODBUS TCP

image.pngimage.png

图 信捷xd系列PLC和TRIO的接口对比

选用的触摸屏是信捷TG765-ET,这个型号带网口,由于MC403上的ETHERNET口还要用来调程序,中间用了交换机

 

信捷Touch Win触摸屏设置:

新建一个工程,在工程的系统设置-设备里,先将“串口设备”上的PLC口和下载口都选择“不使用xx口”。然后右键点击“以太网设备”,新建一个设备名。

image.png

设置“以太网设备”,这里指的是触摸屏的一些IP信息,根据实际情况设,因为TRIO设备是192.168.0.250ip地址设成192.168.0.xx就行,默认网关似乎不需要和trio一样,设成不一样也可以用。

image.png

设置“以太网设备”下的“trio,这里的IP指的是TRIO MC403ip,要和控制器一致。因为要用modbus tcp连接,选择了modbus tcp设备。

image.png

TRIO端设置:

TRIO控制器这边主要是用triobasic启动modbus。参考MODBUS命令的使用,这里就不多说了。下边是按照MODBUS命令demo做的一个例子,红线处的ip是触摸屏的ip。这里有个小技巧,trio中很多指令都有许多用数字表示的模式,在程序里看起来不是很直观。可以像例子里那样吧这些模式用变量表示,这样就直观多了。相比codesys里就有很多类似的宏变量来表示模式。

image.png

至此就完成了TRIO和信捷触摸屏的通讯。还是很简单的,第一次用,主要要注意几个IP的设置。

 

由于要传递浮点数据,在touch win端将数据设为dword,在trio端,需要使用ethernet命令将传递的数据改为32位单精度浮点型

image.png   image.png

touch win的各种控件中,对象类型有0x,1x,3x,4x,其中

0x1xI/O对象

3x4x对应的是VR数据,3xtouch win上不能改

配完后0x8就是第8个I/O,4x0就是VR(0)

image.png

按照triomodbus的说明,是可以修改“Index number of the VR where the connection handle will be written.”,个人理解的是地址偏移,但修改了也没什么效果。。。如果有了解的工友请多指教。


后来发现一个问题:

前文说了,因为要传浮点数,在trio端把ethernet传递的数据改成了32位浮点,触摸屏端用的是dword,在使用一个写入并显示的“数据输入”框,如果trio地址是4010,做如下设置

image.png

但第二个输入框要在4011输入,就要如下设置

image.png

而且在使用”变长动态文字“也不正常,应该时数据类型的问题。先凑合用了,后边如果有解决办法再更新

1分不嫌少!


楼主最近还看过



fighting2020

  • [管理员]
  • 精华:4帖
  • 求助:4帖
  • 帖子:1023帖 | 7244回
  • 年度积分:1284
  • 历史总积分:18892
  • 注册:2008年11月11日
发表于:2020-05-20 09:24:27
1楼

感谢楼主的分享

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2020-05-20 23:02:46
2楼

可以叫地址偏移,实际上是叫法不同。就是寄存器编号和寄存器实际地址的不同,实际中报文都是以寄存器实际地址为准。


热门招聘
相关主题

官方公众号

智造工程师