MCGS组态屏CRC16(Modbus)校验计算脚本
MCGS组态屏CRC16(Modbus)校验计算脚本
说明:该脚本可对任意字节长度的字符型变量进行CRC校验码计算,首先在实时数据库中新建以下变量:
inputString——字符型
stringLength——数值型
mid_n——数值型
CRCFull——数值型
CRCLSB——数值型
i——数值型
CRC1——字符型
CRC0——字符型
CRC码——字符型
然后编写脚本代码:
stringLength=!len(inputString) '读取字符串长度
mid_n=1 '计数变量
CRCFull=65535 '0XFFFF
while(mid_n<=stringLength)
i=0
CRCFull=!BitXor(CRCFull,!Hex2I(!mid(inputString,mid_n,2))) '按位异或
while(i<8)
CRCLSB=!BitAnd(CRCFull,1)
IF CRCLSB=1 THEN
CRCFull=!BitAnd(!BitRShift(CRCFull,1),32767)
CRCFull=!BitXor(CRCFull,40961) 'A001对应40961
ELSE
CRCFull=!BitAnd(!BitRShift(CRCFull,1),32767)
ENDIF
i=i+1
endwhile
mid_n=mid_n+2
endwhile
CRC1=!I2Hex(!BitAnd(!BitRShift(CRCFull,8),255)) '高八位
CRC0=!I2Hex(!BitAnd(CRCFull,255)) '低八位
CRC码=CRC1+CRC0
将该脚本嵌入策略或其他模块,即可运行。
程序运行结果:
例如 inputString 为 “010600030001”,经脚本计算,CRC码为 “0AB8”
MCGS组态屏CRC16(Modbus)校验计算脚本相关推荐
- CRC-16 / MODBUS 校验计算方法
CRC-16 / MODBUS : 1)CRC寄存器初始值为 FFFF:即16个字节全为1: 2)CRC-16 / MODBUS的多项式A001H (1010 0000 0000 0001B) 'H' ...
- crc java_java实现CRC16 MODBUS校验算法
/*** 查表法计算CRC16校验 * *@paramdata 需要计算的字节数组*/ public static String getCRC3(byte[] data) {byte[] crc16_ ...
- java实现CRC16 MODBUS校验算法
最近进行led彩屏通讯开发,接触到CRC16算法计算校验码,先附上两篇网上可用的代码 /*** 计算CRC16校验码** @param bytes* @return*/public static St ...
- CRC-16/MODBUS 校验位计算
实验指令: 前23位表示 信息头 + 信息内容.24,25位是待计算的校验位.26位是结束码 7E 01 00 00 01 10 02 00 27 00 0C 00 02 00 00 00 00 00 ...
- STM32学习+步科组态屏
目录 KEIL5下载.安装... 3 第一步,官网下载https://www.keil.com/. 3 第二步,下载keil5. 3 第三步,下载完成安装keil5. 4 第四步,下载安装stm32固 ...
- CRC-16/MODBUS x16+x15+x2+1校验计算 C++
CRC-16/MODBUS x16+x15+x2+1校验计算 #include <stdio.h> int main(void) { unsigned short tmp = 0x ...
- mcgs组态软件中字体如果从左到右变化_昆仑通态专题(十一):MCGS嵌入式组态软件的脚本程序...
脚本程序是MCGS嵌入式组态软件中的一种 内置编程语言引擎.当某些控制和计算任务 通过常规组态方法难以实现时,通过脚本语 言可以解决其常规组态方法难以解决的问题.本章介绍MCGS嵌入版组态软件的脚本语 ...
- JAVA CRC-16(CRC-16/IBM)计算校验值
JAVA CRC-16(CRC-16/IBM)计算校验值 前言:对接硬件设备的通信协议需要用到CRC-16进行计算校验值,然后再网上找了很多个版本,很久都没找到这个版本的,然后好不容易找到了,就记录一 ...
- 16进制(CRC16)(MODBUS RTU通讯)校验码在线计算器
最近在项目上遇到,用485协议命令控制灯光继电器的开关需要计算16进制(CRC16)(MODBUS RTU通讯)校验码来写控制命令,这种在网上有现成的计算器,我们直接使用即可,以下为我用的一个计算器的 ...
- 一文详解循环冗余校验校验算法(CRC校验)及C语言代码的实现 ---- 以CRC-16/MODBUS为例讲解
一.概述 现在的产品开发过程中,无论是数据的储存还是传输,都需要确保数据的准确性,所以就需要在数据帧后面附加一串校验码,方便接收方使用校验码校验接收到的数据是否是正确的. 常用的校验方式有奇偶校验.异 ...
最新文章
- 借助Ant工具,实现快速开发
- 使用Oracle LogMiner分析archived log
- C++简单排序,堆排序
- android打开网址重启后也是这个网站,千万不要乱试!iPhone只要打开这个「网址」立即崩溃重启!...
- linux 进程的vss rss uss,内核/内存管理中的VSS/RSS/PSS/USS
- 阿里云服务器mysql莫名丢失_mysql数据库丢失
- Spring bean 不被 GC 的真正原因
- 【Java】Java SimpleDateFormat 线程安全 问题
- 数据库迁移Flyway
- 【电脑帮助】解决Wind10系统没有本地用户和组的问题
- iOS 刘海屏 隐藏横条 home键
- 【10g中db_recovery_file_dest和log_archive_dest参数的关系】
- PowerBuilder开发简单计算器
- 迅为IMX6ULL开发板Linux下电容触摸屏实验-实验程序编写
- python爬虫爬取机床展名录
- 机器学习算法工程师--实习面经
- 服务器装系统提示未找到任何驱动器,win7系统安装时提示找不到任何设备驱动程序的四种解决方法图文教程...
- 豆瓣电影top250信息爬取
- 【方法】Chrome如何下载视频
- 樊登读书会终身成长读后感_樊登读书会听书《终身成长》学习感悟
热门文章
- 计算机五笔教案ppt,计算机基础课件五笔打字.ppt
- 百度实习1,2,3面-教育知心搜索前端项目组
- linux wine qq 字体,在UOS系统中更改deepin-wineQQ使用的字体经验谈
- Bulk Insert命令详解
- 盘点那些Wifi破解姿势(1)
- vray安装显示服务器没有安装,vray3.2安装教程
- emule服务器无响应,全部服务器无响应!!!
- linux机顶盒线刷教程,机顶盒刷机教程 机顶盒刷机步骤详解与注意事项
- nodejs 服务端 音频拼接 合成 实现
- Natas.4744幽灵王病毒的分析