PLC TCP通讯时报错809A,是哪块设置的不对吗,请大家指点!



1分不嫌少!
赏
已有1人打赏
PLC TCP通讯时报错809A,是哪块设置的不对吗,请大家指点!



可能的原因:
截图中 MB_SERVER 的 CONNECT 引脚直接连接了 DB2(数据块_2),这种 “只写数据块名” 的写法会导致系统无法识别具体的连接结构,触发长度不匹配错误。
修正方案:必须指向数据块内的具体连接结构。
写法:DB2.Static_1(假设你的连接结构变量名为 Static_1,即图 1 中的 TCON_IP_v4 结构)。
原理:CONNECT 引脚需要的是一个指针,必须精准指向 TCON_IP_v4 结构体的起始位置,不能只指向整个 DB 块。
这个得看具体的
CONNECT参数指向的连接描述结构长度不匹配,或者引用错误,亦或者数据块属性不对。
给你我这里modbusTCP服务器的程序截图,你看看,保持寄存器最好用uint类型的数组。


MB_SERVER背景DB里看有没有配置
本质:你给 TSEND_C/TRCV_C/MB_SERVER/MB_CLIENT 的CONNECT 引脚,只填了整个 DB 块名,没有指向 DB 里的 TCON_IP_v4 结构体子项,导致系统读取的结构长度不对、指针无效
本质:你给 TSEND_C/TRCV_C/MB_SERVER/MB_CLIENT 的CONNECT 引脚,只填了整个 DB 块名,没有指向 DB 里的 TCON_IP_v4 结构体子项,导致系统读取的结构长度不对、指针无效
你填 db2的地方 应该是一个指针 再db块里直接把变量 拖到那个通讯指令的引脚上



如图,可参考