當(dāng)前位置:機(jī)電之家首頁 >> PLC技術(shù)>> plc應(yīng)用 >> 永宏plc應(yīng)用 >> 關(guān)于永宏P(guān)LC自由通訊CRC校驗的生成
關(guān)于永宏P(guān)LC自由通訊CRC校驗的生成

“自由通訊”的意思是:上位可以依據(jù)下位給出的協(xié)議,按照該協(xié)議對下位進(jìn)行存取操作。用在觸摸屏或者PLC上就是:通訊命令完全交由宏指令(對HMI而言)或者梯形圖(對PLC而言)來完成。
這里要舉的例子就是用永宏自由通訊(FUN151 MD1模式)實現(xiàn)對MODBUS_RTU通訊(MODBUS_RTU協(xié)議內(nèi)容網(wǎng)上可以下載)。我覺得RTU的比較難的在于CRC校驗的實現(xiàn),當(dāng)然永宏本身是有 CRC16 指令的,這樣可以省去CRC生成算法,但在一些沒有CRC指令的PLC上面,就需要自己編寫了,這里來編寫CRC算法。
CRC算法說明,大概就是下面這幾個意思:
1.設(shè)置CRC寄存器,并給其賦值FFFF(hex)。
 2.將數(shù)據(jù)的第一個8-bit字符與16位CRC寄存器的低8位進(jìn)行異或,并把結(jié)果存入CRC寄存器。
3.CRC寄存器向右移一位,MSB補(bǔ)零,移出并檢查LSB。
4.如果LSB為0,重復(fù)第三步;若LSB為1,CRC寄存器與多項式碼相異或。
 5.重復(fù)第3與第4步直到8次移位全部完成。此時一個8-bit數(shù)據(jù)處理完畢。
 6.重復(fù)第2至第5步直到所有數(shù)據(jù)全部處理完成,最終CRC寄存器的內(nèi)容即為CRC值

舉例:對 02H  03H  07H  D0H  00H  03H 這6個數(shù)據(jù)進(jìn)行CRC校驗。我們可以事先用winproladder算出這6個數(shù)據(jù)的CRC校驗值或者在通訊表格里面,拖動選中需要進(jìn)行CRC校驗的寄存器號,也可以得出CRC值

現(xiàn)在通過編程來計算CRC了,我把這個過程做成子程序,并且命名為 CRC,說明
1.    R100=FFFFH(CRC寄存器),在CRC運(yùn)算前,事先被賦值;
2.    V 指針,在CRC運(yùn)算前,先被清零;
3.    02H  03H  07H  D0H  00H  03H 被放在 R6003 ~R6008 這6個寄存器內(nèi)。

由于CRC校驗結(jié)果是高低位對調(diào)的,這里把CRC累加器的值對應(yīng)存放到需要存儲CRC結(jié)果的寄存器就可以了。
永宏的B1/B1z系列PLC之前不能使用CRC16指令,所以之前的CRC結(jié)果比較麻煩,但現(xiàn)在winproladder V3.20里面,B1/B1z已經(jīng)支持該指令,并且也可以進(jìn)行浮點運(yùn)算了。

作者:未知 點擊:493次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:關(guān)于永宏P(guān)LC自由通訊CRC校驗的生成
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《關(guān)于永宏P(guān)LC自由通訊CRC校驗的生成》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

Alyssa Yin(尹小姐) 【求購】  SEEBA...  2025-12-15
曾經(jīng)理 【求購】  定制酒店香...  2025-12-12
張瑜 【求購】  防靜電橡膠...  2025-12-12
劉強(qiáng) 【求購】  保溫板  2025-12-12
曹先生 【求購】  鎂合金  2025-12-12
趙經(jīng)理 【求購】  防火密封膠  2025-12-12
A 【求購】  鐵路接觸網(wǎng)...  2025-12-11
 【求購】  西門子ET...  2025-12-11
VIP公司推薦