M-IF16C用户手册V1.1基于Modbus的16路电流型模拟量输入模块1 产品简介M-IF16C(基于Modbus的16路电流型模拟量输入模块)作为通用型模拟量量采集模块广泛应用于冶金、化工、机械、消防、建筑、电力、交通等工业行业中,可接入16路温度、湿度、液位、压力、流量、PH值等传感器输出的0~20mA 或4~20mA模拟量信号。
支持标准的Modbus RTU 协议,并具有通讯超时检测功能,可同其它遵循Modbus RTU 协议的设备联合使用。
1.1 系统概述M-IF16C模块的原理框图如图1.1所示,模块主要由电源电路、模拟量输入采样电路、隔离RS485收发电路及MCU等部分组成。
采用高速ARM处理器作为控制单元,拥有隔离的RS485通讯接口,具有ESD、过压、过流保护功能,避免了工业现场信号对模块通讯接口的影响,使通讯稳定可靠。
图1.1 原理框图1.2 主要技术指标1)系统参数供电电压:5~40VDC,电源反接保护功率消耗:0.5W工作温度:-10℃~60℃存储温度:-40℃~85℃相对湿度:5%~95%不结露2)模拟量输入参数输入路数:16路单端输入正常输入范围:0~20mA,4~20mA最大输入范围:0~21mA隔离电压:2500VDC输入电阻:120ΩADC分辨率:12位采样精度:0.5%采样速率:100次/s3)通讯接口通讯接口:RS485 接口,隔离1500VDC,±15kV ESD 保护、过流保护隔离电压:1500V通讯协议:Modbus RTU 协议波特率:1.2k,2.4k,4.8k,9.6k,19.2k,38.4k,57.6k,115.2k通讯数据格式:1个起始位,8个数据位,无、奇或偶校验,1个或2个停止位1.3 外形及尺寸外壳材料:ABS工程塑料尺寸大小:145mm(长) * 90mm(宽) * 40mm(高)安装方式:标准DIN35导轨安装和螺钉安装模块外形如图1.2所示,安装尺寸如图1.3所示。
图1.2 外形图图1.3 安装尺寸图2 模块功能2.1 模拟量输入现场传感器输出的电流信号接入M-IF16C模块的输入端,经模块内部集成的精密电阻转换成电压信号,然后通过运算放大器、多路模拟开关和A/D电路进行采集处理,得到相应的数值,接线原理如图1.4所示。
图1.4 接线原理图3 端子与拨码开关3.1 端子描述1)电源和通讯端子T1T1 定义说明1 V+输入电源电压5~40VDC,如24VDC2 GND3 A RS485+4 B RS485-5 SG RS485信号地2)模拟量输入端子T2T2 定义说明1 AI02 AI13 AI24 AI38路电流型模拟量输入5 AI46 AI57 AI68 AI79 AGND模拟量输入公共端,接电源负极10 AGND11 AI812 AI913 AI1014 AI118路电流型模拟量输入15 AI1216 AI1317 AI1418 AI153.2 拨码开关S11)节点地址ADDR(出厂默认节点地址为1)节点S6 S7 S8 S9 S100 OFF OFF OFF OFF OFF1 OFF OFF OFF OFF ON2 OFF OFF OFF ON OFF3 OFF OFF OFF ON ON4 OFF OFF ON OFF OFF5 OFF OFF ON OFF ON6 OFF OFF ON ON OFF7 OFF OFF ON ON ON8 OFF ON OFF OFF OFF9 OFF ON OFF OFF ON10 OFF ON OFF ON OFF11 OFF ON OFF ON ON12 OFF ON ON OFF OFF13 OFF ON ON OFF ON14 OFF ON ON ON OFF15 OFF ON ON ON ON16 ON OFF OFF OFF OFF17 ON OFF OFF OFF ON18 ON OFF OFF ON OFF19 ON OFF OFF ON ON20 ON OFF ON OFF OFF21 ON OFF ON OFF ON22 ON OFF ON ON OFF23 ON OFF ON ON ON24 ON ON OFF OFF OFF25 ON ON OFF OFF ON26 ON ON OFF ON OFF27 ON ON OFF ON ON28 ON ON ON OFF OFF29 ON ON ON OFF ON30 ON ON ON ON OFF31 ON ON ON ON ON 2)波特率BAUD(出厂默认波特率为9600bps)波特率S3 S4 S51200bps OFF OFF OFF2400bps OFF OFF ON4800bps OFF ON OFF9600bps OFF ON ON19200bps ON OFF OFF38400bps ON OFF ON57600bps ON ON OFF115200bps ON ON ON3)数据格式CM(出厂默认为1个起始位,8个数据位,无校验,1个停止位)通讯的数据格式为:1个起始位,8个数据位,校验和停止位如下:描述S1 S2无校验,1个停止位OFF OFF无校验,2个停止位OFF ON奇校验,1个停止位ON OFF偶校验,1个停止位ON ON3.3 状态指示灯工作状态描述红色常亮模块故障D1绿色常亮模块正常红色闪烁或常亮通讯故障或通讯超时D2绿色闪烁正在收发通讯数据包注:D2指示灯绿色闪烁的频率和通讯状态有关。
通讯波特率越高,闪烁越快;通讯越频繁,闪烁越快;如果总线上没有数据包传输,则不闪烁。
4 IO与模块参数MODBUS 协议规定了 4 种元件,分别是:离散输入(Discrete Input)、线圈(Coil)、保持寄存器(Holding Register)、输入寄存器(Input Register)。
模块中所有的IO和参数都映射到特定的MODBUS 元件,通过读写这些元件就可以操作模块完成各项功能。
4.1 模拟量输入M-IF16C模块有16 路模拟量输入通道,分别映射到第0~15号输入寄存器、第0~15号保持寄存器,可通过读输入寄存器、读保持寄存器的值来获得模拟量输入值,如下所示:Modbus元件读写输入通道类型PLC地址Modbus地址输入寄存器300001 0 只读AI0保持寄存器400001 0 只读输入寄存器300002 1 只读AI1保持寄存器400002 1 只读输入寄存器300003 2 只读AI2保持寄存器400003 2 只读输入寄存器300004 3 只读AI3保持寄存器400004 3 只读输入寄存器300005 4 只读AI4保持寄存器400005 4 只读输入寄存器300006 5 只读AI5保持寄存器400006 5 只读输入寄存器300007 6 只读AI6保持寄存器400007 6 只读输入寄存器300008 7 只读AI7保持寄存器400008 7 只读输入寄存器300009 8 只读AI8保持寄存器400009 8 只读AI9 输入寄存器300010 9 只读保持寄存器400010 9 只读输入寄存器300011 10 只读AI10保持寄存器400011 10 只读输入寄存器300012 11 只读AI11保持寄存器400012 11 只读输入寄存器300013 12 只读AI12保持寄存器400013 12 只读输入寄存器300014 13 只读AI13保持寄存器400014 13 只读输入寄存器300015 14 只读AI14保持寄存器400015 14 只读输入寄存器300016 15 只读AI15保持寄存器400016 15 只读4.2 模块参数M-IF16C模块的节点地址、波特率和数据格式通过拨码开关设置后,在上电时自动进行配置,无需软件配置。
M-IF16C模块定义了超时时间参数用于控制通讯超时报警功能。
该参数映射到保持寄存器30016(高16位)和保持寄存器30017(低16位)中,该参数通过16号功能码写入模块内部的EEPROM中,上电时自动加载此参数。
超时时间参数为32位无符号整数,单位为ms,该参数范围为0x0000000A~0x000493E0,对应10~300000ms,如0x00002710表示10000ms。
如果不需要启用超时功能,将该值设置为0x00000000。
参数元件类型PLC地址Modbus地址功能码描述保持寄存器430017 30016 超时时间高16位超时时间保持寄存器430018 30017 03或16超时时间低16位5通讯协议M-IF16C模块遵循标准的MODBUS RTU 协议,MODBUS 通讯协议详细信息请参见MODBUS 标准化组织网站:/,这里结合M-IF16C模块简要介绍MODBUS RTU 协议。
5.1 MODBUS通讯模式MODBUS 协议使用查询/响应通讯模式。
MODBUS 主站设备向选定地址的从站设备发送请求报文,报文中包含了主站要求从站执行的操作以及完成该操作所需要的任何附加信息。
被选定的从站收到请求报文后,执行报文中指定的操作,并根据执行结果发出响应报文。
如果操作正确完成,则响应正常报文;如果在执行过程中发生错误,则响应出错报文。
主站根据从站响应报文判断从站操作结果,以执行下一步操作。
5.2 模块支持的功能码M-IF16C模块支持03、04、16号功能码,各功能码及所操作的元件如下表所示。
元件功能码读写功能保持寄存器03 读读多个保持寄存器I/O输入寄存器04 读读多个输入寄存器03 读读多个保持寄存器参数配置保持寄存器16 写写多个保持寄存器5.2.1 03号功能码1)主站请求报文报文内容长度取值范围示例从站地址1字节0x01~0x1F 0x01功能码1字节0x03 0x03起始地址2字节0x0000~0x001F 0x0000输入数量2字节0x0001~0x0020 0x0001CRC校验2字节0x0000~0xFFFF 0x840A注1:主站请求报文示例,读从0开始的1个保持寄存器(即读保持寄存器0,映射为模块的第一路模拟量输入AI0)。
注2:起始地址和输入寄存器数量相加不能大于32,否则会以出错报文响应。
2)从站正常响应报文报文内容长度取值范围示例从站地址1字节0x01~0x1F 0x01功能码1字节0x03 0x03字节数量1字节N 0x02输入数据N字节0x16EECRC校验2字节0x0000~0xFFFF 0x3668注1:N=响应中数据的字节数量。
注2:从站正常响应报文示例,输入数据为0x16EE,对应的电流为:5870*20/10000=11.74mA(即输入数据值0~10000对应电流值为0~20mA)。