登录
首页
PLC论坛
PLC论坛
回帖
发帖
正文
主题:三菱中Q01PLC如何计算CRC校验程序
点击:4852 回复:7
楼主
编辑
引用
管理
xlxlab
如何用PLC程序实现CRC校验码计算,谢谢!
07-10-01 16:17
1楼
编辑
引用
管理
wudp
照CRC的计算方法
一步一步做
07-10-02 00:38
2楼
编辑
引用
管理
xlxlab
wudp老兄,你好我用如下CRC的计算方法:
· 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器;
· 把第一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器;
· 把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位;
· 如果最低位为0:重复第3步(再次移位); 如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;
· 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
· 重复步骤2到步骤5,进行下一个8位数据的处理;
· 最后得到的CRC寄存器即为CRC码。
我用手工按上面方法计算了一下,好象算了N遍都没有得到串行通信口调试软件计算出的结果,不知是我理解错误还是那个地方出了问题,如计算01H的CRC码,软件计算的是807eh,而我用手工计算算出的是c03eh, 不知是那个地方理解或者算法有误,请剔教,谢谢!!!
07-10-02 00:51
3楼
编辑
引用
管理
wudp
方法是对的
手工算的话很麻烦
注意右移和比较
07-10-02 20:06
4楼
编辑
引用
管理
xlxlab
我想问的是,WUDP你对三菱Q01PLC熟悉吗?请问在串行通讯QJ71C24N中它接收PLC的数据一定要是ASCII码吗?如果是,那么Q01中的数据处理没有ASCII转换的指令,这样岂不是太麻烦了,我觉得三菱做东西越来越垃圾了,如果这样搞我以后不敢在用它的东西了。请你能说说,让大家学习学习,少走弯路.
07-10-02 22:25
5楼
编辑
引用
管理
wudp
有ASCII转换的指令
07-10-06 22:49
6楼
编辑
引用
管理
xlxlab
但我看了手册一下,也试过了,可就是找不到那条指令可以担当这个角色,是基本型的Q系列的plc,而不是高性能的,ASCII在Q系列的PLC中只看到了Q02系列的及以上的有这条指令,还望老兄能明示。谢谢!!
07-10-07 12:40
7楼
编辑
引用
管理
激光侠
不能用RTU吗?
10-06-27 18:24
工控新闻
施耐德电气携手AMD发布首款Helios平台参考设计,加速AI工厂部署
华北工控赋能AI视觉落地:EMB-3541提供10.4Tops@INT8算力和丰富接口
西克新品 | MWS250 测量轮编码器上市
ABB@2026中国国际铝工业展:以创新技术与解决方案赋能铝行业高质量发展
AI加速跑进千行百业:让智能创新扎根实体经济
Beckhoff 大学合作计划丨2026 年第二期全国智能制造师资培训及产学研用活动通知
告别英文壁垒!倍福 中文版 TwinCAT 3.1.4026 下载及安装指南
优必选WalkerS2入选工信部“2025年人工智能应用典型案例”
更多新闻资讯