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

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

奇数字节不好取啊


两个方法:
1、使用WTOB将字分解到字节,再BTOW合并到一起
2、计算具体是哪个字,使用wand指令将不用的字节复位就行了。