|
做了几年工控,我个人觉得最难的就是通信,但通信一旦搞明白了又很简单。之前做过一个项目用阿塔拉斯的螺丝枪,需要用TCP/IP读取螺丝扭矩和角度信息上传数据库。
那是我第一次用TCP/IP通信,问供应商要了相关资料,建立通信连接,然后发送不同的报文,就可以接收到不同的信息。螺丝枪到货后就开始接线上电测试,设置好螺丝枪控制器参数,用TSEND_C正在建立连接和发送数据,TRCV通过通信连接接收数据,一直报错,通信不上,PC是可以ping到螺丝枪控制器的。具体报错已经忘记了。后来咨询供应商,供应商发来一个PC调试客户端,用PC和螺丝枪控制器通信,可以正常读取扭矩和角度信息。仔细阅读说明后发现,和螺丝枪建立通讯连接要先发送指定报文,类似于握手信号。后来使用TCON建立通信连接,然后用TSEND通过通信连接发送数据,TRCV通过通信连接接收数据,依然通信不上,螺丝枪控制器还是可以ping通,此时换供应商给的PC调试客户端,竟然也通信不上了。后来才发现,上次能通信上是用PC直接通过网线连螺丝枪控制器的,然后把网线拔了直接连,又能通信上了。
我觉得可能是网线有问题,就把螺丝枪控制器到交换机的网线换了,因为是在测试,所有随便找了几根网线,换了网线之后,PC客户端可以通过交换机和螺丝枪控制器通信,plc也可以通信上了。本以为这样就结束了,然后就开始写程序,后来在调试过程中又出问题了。机器停一段时间,不断电,又会通信不上,断电重启就好了。有加了TDIDCON断开通信连接,如果通信不上,先断开通信连接,然后再建立通信连接就可以了。
|
|