📄 modbus协议的crc校验子程序代码.txt
字号:
Modbus ASCII 开发1-基于Scilab得SCADA system开发手记6
推荐Modbus ASCII 开发
Modbus是modicom公司提出得一种数据传送方式, 也是现在用的较多的现场总线之一,之所以它这么成功得被应用, 主要原因是因为Modbus协议的简单,和开放性较好.
Mobus协议可以主要分为ASCII和RTU两种
Modbus消息帧中的功能代码域包含了两个字符(ASCII)或8Bites(RTU)。可能的代码范围是十进制的1——255。
数据域是由两个十六进制数集合构成的,范围00...FF。根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成。
ASCII模式可以使用的传输字符是十六进制的0...9,A...F。网络上的设备不断侦测“:”字符,当又一个冒号接收的时候,每个设备都解码下个域(地址域)来判断是否发给自己的。
Modbus ASCII模式下相邻两帧之间的时间间隔最长可达1秒,否则接收的设备将会认为传输出现错误。
Modbus ASCII模式下信息帧格式
本程序主要开发Modbus ASCII模式
主要函数
_declspec(dllexport) void send_ascii_1(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_read_coil_status (*board,send_char,*start,*length);
}
_declspec(dllexport) void send_ascii_2(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_read_input_status (*board,send_char,*start,*length);
}
_declspec(dllexport) void send_ascii_3(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_read_hldreg (*board,send_char,*start,*length);
}
_declspec(dllexport) void send_ascii_4(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_read_anloginput (*board,send_char,*start,*length);
}
_declspec(dllexport) void send_ascii_5(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_set_coil (*board,send_char,*start,*length);
}
_declspec(dllexport) void send_ascii_6(unsigned char *board,int *start, int *length, unsigned char *send_char)
{
ascii_set_hldreg (*board,send_char,*start,*length);
}
_declspec(dllexport) void ascii_anlys(char *source, int *send_char)
{
ascii_data_anlys (send_char,source,0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -