Python
modbus CheckSum 구하기.
지니
2022. 9. 23. 23:11
반응형
예를들어서 포멧이 아래와 같다고 하자.
01 01 03 04 ff 00 06 checkSum(crc-16 ABCD Type)
https://www.scadacore.com/tools/programming-calculators/online-checksum-calculator/
Online Checksum Calculator - SCADACore
SCADACore's Checksum Calculator can be used to verify the checksum algorithm used by field devices. It accepts ASCII or Hex to produce a checksum.
www.scadacore.com
위 사이트에서 구해보면

이렇게 나온다. 그렇다면 파이썬에서는 어떻게 쉽게 구할까?
(파이썬 만세)
from PyCRC.CRC16 import CRC16
def checksum(restOfFrame):
return CRC16(modbus_flag=True).calculate(restOfFrame.encode())
'''
modbus_flag = true > CRC-16
modbus_flag = false > CRC-16-IBM
'''
print(hex(checksum('01010304ff0006')))
이게 끝이다..ㅋㅋ;;; 그냥 PyCRC를 설치해주고 import해서 함수 호출해서 사용하면 끝.. 파이선 만세
반응형