项目中用的6ES7 137-6AA01-0BA0模块与一款国产流量表modbus rtu 通讯读取累计流量,程序最开始是用博图V16编写的,那是组态的模块是6ES7 137-6AA00-0BA0,后来到现场后换成了博图V17,在组态里把模块直接更改成了6ES7 137-6AA01-0BA0,程序和接线都反复确认没问题后依然通讯不上,读不出任何数据,期间在论坛中发出提问的请求,也有资深的老师给出自己的意见,多方尝试后,确定了仪表没有问题,可以读出数据,那么问题就出在了PLC这边,但是软件硬件我检查了不止一次,都没发现问题所在,模块甚至由一开的发射和接收等闪烁都变成了长灭,modbus_comm_load程序可以采集到Done信号,modbus_master在7001和7002的交替,然后偶尔报出8281的故障码,查询是说modbus_comm_load的port接口有问题,但是我反复确认后没发现错误,后来又打了西门子客服,建议我硬件完全重建试试,结果还是不灵,这时候就怀疑是不是硬件有问题了,但是组态里没有报任何错误。联系了西门子售后,准备要返厂了,今天早晨突然灵光一闪,我把组态里的串口模块删掉了,再重新拉入,然后重新填写了modbus_comm_load的port上硬件标识符,程序下载,数据监控,我居然在一个地址里看到了一串数据,虽然还不知道什么意思,但是代表通讯通上了,那一刻真的是感觉任督二脉都打通了,太舒爽了,困扰了我有快一个月的问题终于解决了。
真的是没想到问题会出在那里,不知道直接更改后的和重新拉入的有什么区别,但是这个问题确实是很抗人,明明软件硬件都没问题,但是就是不好使,真的让人头痛啊。所以想写些东西把他记录下来,希望看到这篇帖子的朋友引以为戒吧!!!