零度浪子001
级别: 正式会员
精华主题: 0
发帖数量: 39 个
工控威望: 97 点
下载积分: 900 分
在线时间: 14(小时)
注册时间: 2024-03-08
最后登录: 2025-01-17
查看零度浪子001的 主题 / 回贴
楼主  发表于: 39天前
图片:
三菱QJ71C24,假如在各种控制里面设定接收长度为8字节,那有的报文比8字节长,该怎么办呢?
零度浪子001
级别: 正式会员
精华主题: 0
发帖数量: 39 个
工控威望: 97 点
下载积分: 900 分
在线时间: 14(小时)
注册时间: 2024-03-08
最后登录: 2025-01-17
查看零度浪子001的 主题 / 回贴
1楼  发表于: 37天前
有没有大神帮助下,就是和一个产品通信,有时接受字节为8,有时比8多,有时比8少!由于返回报文带校验码,结束位也不固定!
tkggtdkjpl
工欲善其事,必先利其器!
级别: 网络英雄

精华主题: 1 篇
发帖数量: 3448 个
工控威望: 20987 点
下载积分: 29935 分
在线时间: 1776(小时)
注册时间: 2010-01-03
最后登录: 2025-02-02
查看tkggtdkjpl的 主题 / 回贴
2楼  发表于: 35天前
字节长度不确定就不要用长度来决定数据结束。
否则数据会重叠或因长度不够卡死
自动化单机,生产线,项目编程调试!
暴躁小白兔
级别: 略有小成
精华主题: 0
发帖数量: 155 个
工控威望: 203 点
下载积分: 4657 分
在线时间: 97(小时)
注册时间: 2021-05-11
最后登录: 2025-01-24
查看暴躁小白兔的 主题 / 回贴
3楼  发表于: 35天前
无手顺发送模式下,一般发送会算校验码,接收则不对校验码进行判断(我觉得多次一举去计算一次)。
接收结束数据数设置命令最长的那一个,结束字符设置一下。
零度浪子001
级别: 正式会员
精华主题: 0
发帖数量: 39 个
工控威望: 97 点
下载积分: 900 分
在线时间: 14(小时)
注册时间: 2024-03-08
最后登录: 2025-01-17
查看零度浪子001的 主题 / 回贴
4楼  发表于: 35天前
引用
引用第3楼暴躁小白兔于2024-12-30 10:02发表的  :
无手顺发送模式下,一般发送会算校验码,接收则不对校验码进行判断(我觉得多次一举去计算一次)。
接收结束数据数设置命令最长的那一个,结束字符设置一下。



接收数据长度可以按照最长的哪个设定,但来的短的报文结束符每次也不一样,这个怎么弄,有好办法吗
零度浪子001
级别: 正式会员
精华主题: 0
发帖数量: 39 个
工控威望: 97 点
下载积分: 900 分
在线时间: 14(小时)
注册时间: 2024-03-08
最后登录: 2025-01-17
查看零度浪子001的 主题 / 回贴
5楼  发表于: 35天前
引用
引用第2楼tkggtdkjpl于2024-12-29 20:04发表的  :
字节长度不确定就不要用长度来决定数据结束。
否则数据会重叠或因长度不够卡死



现在我要和另一个仪表或设备通信,大概有4种长度的报文,结束符每次也不一样,比如获取对方的电流,电流每次会变化,那回来的报文结束符就不一样,有什么好办法
零度浪子001
级别: 正式会员
精华主题: 0
发帖数量: 39 个
工控威望: 97 点
下载积分: 900 分
在线时间: 14(小时)
注册时间: 2024-03-08
最后登录: 2025-01-17
查看零度浪子001的 主题 / 回贴
6楼  发表于: 34天前
假如每次接收到的报文像这样FB 2A 01 A5 03 01 C2 00 2A FB F9 29,但长度不一定,F9 29为校验码,那结束符能用2A FB来指定吗
飞皇123
级别: 正式会员
精华主题: 0
发帖数量: 24 个
工控威望: 60 点
下载积分: 228 分
在线时间: 5(小时)
注册时间: 2024-09-05
最后登录: 2025-01-27
查看飞皇123的 主题 / 回贴
7楼  发表于: 19天前
那你就用设置结束代码的方式接收数据
zhaoch95
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 116 点
下载积分: 4080 分
在线时间: 34(小时)
注册时间: 2010-07-12
最后登录: 2025-01-24
查看zhaoch95的 主题 / 回贴
8楼  发表于: 12天前
1、用通讯协议,设置四条接收报文
2、接收长度设置1字节,自己维护一个FIFO的数据区,自己判断报文数据结束后处理
3、如果2A FB是固定的,就设置这个作为结束符,就是本次接收会少两个字节的校验码,下次接收头部多两个字节校验码