Ps:本来是要用R232连接的,但发现信捷自带R232线的DIN8定义和TRIO的不一样,而现在DIN8的线都是一体的,很难拆了重焊(拆废了一根),就试了下MODBUS TCP。
图 信捷xd系列PLC和TRIO的接口对比
选用的触摸屏是信捷TG765-ET,这个型号带网口,由于MC403上的ETHERNET口还要用来调程序,中间用了交换机
信捷Touch Win触摸屏设置:
新建一个工程,在工程的系统设置-设备里,先将“串口设备”上的PLC口和下载口都选择“不使用xx口”。然后右键点击“以太网设备”,新建一个设备名。
设置“以太网设备”,这里指的是触摸屏的一些IP信息,根据实际情况设,因为TRIO设备是192.168.0.250,ip地址设成192.168.0.xx就行,默认网关似乎不需要和trio一样,设成不一样也可以用。
设置“以太网设备”下的“trio”,这里的IP指的是TRIO MC403的ip,要和控制器一致。因为要用modbus tcp连接,选择了modbus tcp设备。
TRIO端设置:
TRIO控制器这边主要是用triobasic启动modbus。参考MODBUS命令的使用,这里就不多说了。下边是按照MODBUS命令demo做的一个例子,红线处的ip是触摸屏的ip。这里有个小技巧,trio中很多指令都有许多用数字表示的模式,在程序里看起来不是很直观。可以像例子里那样吧这些模式用变量表示,这样就直观多了。相比codesys里就有很多类似的宏变量来表示模式。
至此就完成了TRIO和信捷触摸屏的通讯。还是很简单的,第一次用,主要要注意几个IP的设置。
由于要传递浮点数据,在touch win端将数据设为dword,在trio端,需要使用ethernet命令将传递的数据改为32位单精度浮点型
在touch win的各种控件中,对象类型有0x,1x,3x,4x,其中
0x,1x是I/O对象
3x,4x对应的是VR数据,3x在touch win上不能改
配完后0x8就是第8个I/O,4x0就是VR(0)
按照trio中modbus的说明,是可以修改“Index number of the VR where the connection handle will be written.”,个人理解的是地址偏移,但修改了也没什么效果。。。如果有了解的工友请多指教。
后来发现一个问题:
前文说了,因为要传浮点数,在trio端把ethernet传递的数据改成了32位浮点,触摸屏端用的是dword,在使用一个写入并显示的“数据输入”框,如果trio地址是4010,做如下设置
但第二个输入框要在4011输入,就要如下设置
而且在使用”变长动态文字“也不正常,应该时数据类型的问题。先凑合用了,后边如果有解决办法再更新
楼主最近还看过