梦雨天涯
微信hui530527   &
级别: 网络英雄
精华主题: 0
发帖数量: 4995 个
工控威望: 8437 点
下载积分: 18669 分
在线时间: 3497(小时)
注册时间: 2016-10-31
最后登录: 2025-11-03
查看梦雨天涯的 主题 / 回贴
楼主  发表于: 2025-08-02 08:34
图片:
图片:
如图所示,假设第一次发送4个字符,第2次发送3个字符,还是保留上次第4个字符的内容,每次都需要截取3长度才行,大佬们有什么好的建议呢?
我目前使用求商,然后加1,最后利用变址把余数等于1的位置进行WAND
[ 此帖被梦雨天涯在2025-08-09 08:11重新编辑 ]
微信hui530527      b站账号,梦雨天涯1991
请不要随意加我,不会随便通过。
工控技术交流QQ群942493953
电气小学生
级别: 论坛先锋
精华主题: 0
发帖数量: 135 个
工控威望: 1111 点
下载积分: 1585 分
在线时间: 140(小时)
注册时间: 2021-04-15
最后登录: 2025-11-03
查看电气小学生的 主题 / 回贴
1楼  发表于: 2025-08-02 09:41
前段时间做过一个项目,也是走TCP通信,我们是定义了数据长度和每个字节的含义,消息内容里当前消息无内容的字节用空格补上。这样就保证了每条消息的长度都是固定的。而且接收缓存区每次都会覆盖上一次的消息内容。
钢带,钢卷缠绕打包机,翻转机,托盘码垛机,栈板更换机,源头工厂。
VX:DQSJ_12345678
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 256 个
工控威望: 425 点
下载积分: 1023 分
在线时间: 178(小时)
注册时间: 2008-08-23
最后登录: 2025-10-31
查看sjbandmm的 主题 / 回贴
2楼  发表于: 90天前
接收区第一个字是接收字节数,根据这个数字来确定读取长度就可以。
工控小c
级别: 工控侠客
精华主题: 0
发帖数量: 558 个
工控威望: 2369 点
下载积分: 10264 分
在线时间: 523(小时)
注册时间: 2022-10-14
最后登录: 2025-11-03
查看工控小c的 主题 / 回贴
3楼  发表于: 89天前
引用
引用第2楼sjbandmm于2025-08-06 21:04发表的  :
接收区第一个字是接收字节数,根据这个数字来确定读取长度就可以。

奇数字节不好取啊
sjbandmm
级别: 略有小成
精华主题: 0
发帖数量: 256 个
工控威望: 425 点
下载积分: 1023 分
在线时间: 178(小时)
注册时间: 2008-08-23
最后登录: 2025-10-31
查看sjbandmm的 主题 / 回贴
4楼  发表于: 88天前
引用
引用第3楼工控小c于2025-08-07 15:32发表的  :

奇数字节不好取啊


两个方法:
1、使用WTOB将字分解到字节,再BTOW合并到一起
2、计算具体是哪个字,使用wand指令将不用的字节复位就行了。
guanyumou
串口通信之家
级别: 论坛先锋
精华主题: 0
发帖数量: 1170 个
工控威望: 1758 点
下载积分: 4540 分
在线时间: 35(小时)
注册时间: 2009-09-04
最后登录: 2025-11-03
查看guanyumou的 主题 / 回贴
5楼  发表于: 76天前
用功能块实现套接字通信方便:

  
微信:guanyumou
微信:chinesegongkong
QQ:149034219
串口通信之家http://modbus.taobao.com
棋影工控之家http://profibus.taobao.com