在与上位软件进行TCP开放式通信时,由于所有DB均设置为“优化访问”方式,因此未注意到奇偶对齐的情况。
在最初的通信协议内容中,存在比如一个结构中,上一个数据占用了一个字节如DBX.DBB0,接下来的数据是非字节形式的数据如一个UDINT,在使用Serialize将数据转存至待发送区域,用tcp助手进行收取,发现数据不对应。
仔细排查发现在DBX.DBB1的位置,系统自动添加了一个值为0的字节。UDINT的起始在DBX.DBB2。请问是否有一种方法,可以将此多余的为0字节消除?
最佳答案
因优化块没有偏移地址,排列规则无法确定;故涉及通信的DB块,建议修改为标准块。
提问者对于答案的评价:
又按照各位回答的方式测试过几次,的确无法排除这个系统添加字节。对最快回答表示感谢!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc353828.html