协议参考相关采集卡
软件协议
-
通讯接口: RS-485。
-
通讯格式: 1个起始位,8个数据位,无校验,1个停止位。
-
波特率: 9600(可软件更改)。
-
地址: 1(可软件更改)。
-
通讯方式: 监控主机与本装置采用一对一(或一对多)主从查询方式。
-
数据协议: MODBUS-RTU
1. MODBUS协议命令、详细解释、示例
注意:以下所有命令中的数据为16进制,地址为默认的01。
-
读取模拟量输入(0x04)
主机发送:addr 04 regH regL numH numL crcH crcL
从机返回:addr 04 len d0H d0L……dnH dnL crcH crcL
解释:寄存器地址从0开始计数,numH numL表示要读取的模拟量的路数。本卡有20路模拟量输入,采用14bit ADC,每路模拟量的数据占用两个字节。结合本采集卡,寄存器地址为19,寄存器数为20。例如,要读取第2路和第3路的,则寄存器地址为00 01寄存器数目为00 02。有如,要读取所有模拟量第1路至第20路,则寄存器地址为00 00寄存器数目为00 14。返回数据(0-16383)0-0x3FFF表示采集到的模拟量,例如模拟量量程为0-20mA,读到的数据为0xEE4,十进制数为3812,那么电流值为I=20mA*3812/16383= 4.654mA。传感器一般为4-20mA,若读到的数值小于4mA,则说明连接线路有故障。
例1:读取第1路至第20路的模拟量
主机发送:01 04 00 00 00 14 F0 05
从机返回:01 04 0C d0H d0L……d19H d19L crcH crcL
例2:读取第2、3路的模拟量
主机发送:01 04 00 01 00 02 20 0B
从机返回:01 04 0C d0H d0L d1H d1L crcH crcL
例3:读取第1路至第21路的模拟量(第21路为温度,算法为T = (d20H*256+d20L)/22 – 305)
主机发送:01 04 00 00 00 15 31 C5
从机返回:01 04 0C d0H d0L……d20H d20L crcH crcL
-
设定模拟量门限值(0x10)
主机发送:addr 10 regH regL numH numL len d0H d0L d1H d1L crcH crcL
从机返回:addr 10 regH regL numH numL crcH crcL
解释:采集卡可以为每个通道设置一个门限值,如果超过设置的门限值,可以触发开关量输出,输出模式请参考后面“设置门限工作模式”命令。每个通道有两个门限值,大于门限和小于门限。当采集到的数值超过设定的数值,会触发输出。例如,大于门限为1000,小于门限为2000,则采集到的数值1000会触发输出;如果大于门限为2000,小于门限为1000,则dx>2000或者dx<1000都会触发输出。
寄存器地址从0开始计数,0-19存储20通道小于门限值,20-39存储大于门限值。发送的命令中,regH regL为寄存器地址,numH numL为要设置的寄存器数。例如,
例:设定第1路模拟量输出为4V,第二路模拟量输出为6V
主机发送:01 10 00 16 00 02 04 0E 00 0E 00 74 01
从机返回:01 10 00 00 00 02 41 C8
例:设定第1路模拟量输出为4V,第二路模拟量输出为6V
主机发送:01 10 00 14 00 04 08 0E 00 0E 00 0E C4 0E C4 40 0E
从机返回:01 10 00 00 00 02 41 C8
-
读取模拟量门限值(0x03)
主机发送:addr 03 regH regL numH numL crcH crcL
从机返回:addr 10 len d0H d0L……dnH dnL crcH crcL
解释:读出设置的门限值,具体
例1:读取两通道的模拟量输出
主机发送:01 03 00 00 00 02 C4 0B
从机返回:01 04 0C d0H d0L……d5H d5L crcH crcL
例2:读取两通道的模拟量输出
主机发送:01 03 00 16 00 02 25 CF
从机返回:01 04 0C d0H d0L……d5H d5L crcH crcL
-
读取开关量输出(0x01)
主机发送:addr 01 regH regL numH numL crcH crcL
从机返回:addr 01 len d0 crcH crcL
解释:寄存器地址为0,numH numL表示要读取的开关量个数,为1。返回数据中,d0为1表示闭合,为0表示断开。
例1:读取4路开关量输出(闭合状态)
主机发送:01 01 00 00 00 01 FD CA
从机返回:01 01 01 01 90 48(若断开状态01 01 01 00 51 88)
-
设置开关量输出(0x0F)
主机发送:addr 0F regH regL numH numL 01 d0 crcH crcL
从机返回:addr 0F regH regL numH numL crcH crcL
解释:寄存器地址为0,numH numL表示要设置的开关量个数,恒为1。d0 = 0,开关量输出断开,d0 = 1,开关量输出闭合。
注意:此开关量输出受模拟量门限控制,如果读取的任意一路模拟量超出了设置的门限值,则自动闭合,闭合后不自动断开,需要用此条命令断开。
例1:开关量断开
主机发送:01 0F 00 00 00 01 01 00 2E 97
从机返回:01 0F 00 00 00 01 94 0B
例2:开关量闭合
主机发送:01 0F 00 00 00 01 01 01 EF 57
从机返回:01 0F 00 00 00 01 94 0B
更多详情案例可来电咨询或关注微信公众号——亚为科技。