西门子PLC(S7-1200、1500)通讯程序报16#80C8错误的解决方法

在使用S7-1200 PLC进行通讯实验时,遇到TCP和MODBUS TCP Server无法同时工作的问题。错误代码16#80C8未在帮助中找到解释。经检查发现TCP和MODBUS的本地ID冲突,修改MODBUS的ID后,问题仍未解决。最终通过重启PLC使设置生效。本地端口重复可能导致相同错误,需注意端口唯一性,且下载更改可能需加载初始值。
摘要由CSDN通过智能技术生成

最近在用S7-1200做通讯实验,里面配置了1个TCP通讯、2个UDP通讯、1个MODBUS TCP SERVER。

开始时,只配置有一个通讯的时候,都能正常工作。后来,把这几个集成在一个程序里时,却发现TCP和MODBUS TCP SERVER不能同时工作,只有一个能够工作(此处省略实验过程字数若干)。但是,2个UDP都能正常工作。

1、出错情况

在线查看程序,将各通讯块的状态引出来,发现:不能工作的程序块报16#80C8代码(正常时应该是16#7abc),在帮助里也没有针对这个故障代码的信息。

2、解决方法

后来在线打开PLC的连接状态,发现MODUBS TCP和TCP通讯的本地ID是一样的,都是1,猜测可能是这个冲突,将MODBUS TCP的ID修改成10,下载,依然没有解决。重新启动PLC后,再去查看,发现在线的本地ID号已经应用了,两个通讯可以同时建立了(下载后无效的原因可能是修改了程序块里的原始值,下载后,没有加载原始值的动作,但是没有起效)。

下图是修改后的通讯状态(红圈的两个前面是一样的):

3、修改MODBUS TCP ID的方法:

打开MB_SERVER块CONNECT对应的变量,打开后,找到ID变量,将起始值修改为10,保存且下载进入PLC:

 4、修改TCP和UDP通讯 ID的方法

在通讯块TSEND_C上点击工具箱,打开连接参数,找到ID,进行修改值,进行保存,并下载到PLC。

 修改后,如果没有应用,则可以重启一下PLC。

2022年3月20日


后记:

1、2022年3月27日发现本地端口重复时,也可能出现上述错误,修改下载后,还需要重启PLC才能生效。

2、修改起始值,下载后,不一定会应用(在线看实际值还是旧值),这时需要打开数据块,选择“加载初始值”才能真正应用。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值