阿尔泰以太网模拟量采集模块MODBUSTCP汇总.docx
《阿尔泰以太网模拟量采集模块MODBUSTCP汇总.docx》由会员分享,可在线阅读,更多相关《阿尔泰以太网模拟量采集模块MODBUSTCP汇总.docx(21页珍藏版)》请在冰点文库上搜索。
![阿尔泰以太网模拟量采集模块MODBUSTCP汇总.docx](https://file1.bingdoc.com/fileroot1/2023-5/31/78aef2e3-20b8-47fc-90f2-dade77d7a549/78aef2e3-20b8-47fc-90f2-dade77d7a5491.gif)
阿尔泰以太网模拟量采集模块MODBUSTCP汇总
DAM-E3058F说明书★端子分布图
★主要指标
8路模拟量输入和1路隔离数字量输出模块
模拟量输入:
■通道:
8路差分
■输入类型:
mV,V,mA
■采样速率:
10Hz
■分辨率:
16bit
■精度:
±0.1%
■零点漂移:
±6uV/℃
■满量程漂移:
±25ppm/℃
■输入阻抗:
20MΩ
■CMR@50/60Hz:
150dB
■隔离电压:
3000V
■故障和过压保护:
最大承受±35V
数字量输出:
■通道:
1
■集电极开路30V(100mA最大负载
■隔离电压:
3750V
■独立通道断线检测功能
■可编程报警输出
■支持10/100Mbps以太网
■提供默认网页或可定制网页
■内置看门狗
■电源:
未调理+10~+30VDC
■功耗:
2W@24VDC
★接线图(图的右侧为用户接线方式
模拟量输入接线图
集电极输出接线图
★代码配置表
■模拟量输入范围配置代码表
通信协议
1MODBUS简介
工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。
MODBUS就是工业控制器的网络协议中的一种。
MODBUS规约作为一个通讯协议是由MODICON公司在1979年首次提出的,它是一个标准的、真正开放的、在工业自动化领域应用最广泛的网络通讯协议。
通过此协议,控制器相互之间、控制器经由网络(例如以太网和其它设备之间可以通信。
它已经成为一通用工业标准。
通过这一协议,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
ModbusTCP协议是MODBUS协议另一版本,它于1999年被开发出来以允许Internet用户访问以太网设备。
由于没有任何商业利益驱使,ModbusTCP协议的开放性及用户对它的熟悉程度再加上其应用的简单易学,现在ModbusTCP已经成为世界领先的工业以太网协议。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
标准的Modbus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
控制器能直接或经由Modem组网。
控制器通信使用主—从技术,即仅设备(主设备能初始化传输(查询。
其它设备(从设备根据主设备查询提供的数据做出相应反应。
典型的主设备:
主机和可编程仪表。
典型的从设备:
可编程控制器。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus协议建立了主设备查询的格式:
设备(或广播地址、功能代码、所有要发送的数据、错误检测域。
从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。
如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。
在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。
这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。
提供的多个内部通道可
允许同时发生的传输进程。
在消息位,Modbus协议仍提供了主—从原则,尽管网络通信方法是“对等”。
如果控制器发送消息,它只是作为主设备,并期望从从设备得到回应。
同样,当控制器接收到消息,它将建立一从设备回应格式并返回给发送的控制器。
主设备查询
查询消息中的功能代码告之被选中的从设备要执行何种功能。
数据段包含了从设备要执行功能的任何附加信息。
例如功能代码03是要求从设备读保持寄存器并返回它们的内容。
数据段必须包含要告之从设备的信息:
从何寄存器开始读及要读的寄存器数量。
错误检测域为从设备提供了一种验证消息内容是否正确的方法。
从设备回应
如果从设备产生正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。
数据段包括了从设备收集的数据:
像寄存器值或状态。
如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
错误检测域允许主设备确认消息内容是否可用。
每个MODBUS帧都包括地址域
功能域
数据域错误检测域
2工作方式
2.1MODBUSRTU方式
地址域
功能域
数据域
错误检测域
帧定界:
在MODBUSRTU方式下,每两个字符之间发送或者接收的时间间隔不能超过1.5倍字符传输时间。
如果两个字符时间间隔超过了3.5倍字符传输时间,就认为一帧数据已经接收完成,新的一帧数据传输开始。
2.2MODBUSASCII方式
地址功能
代码数据
数量数
据1
...
数据n
CRC高字
节CRC低字
节
地址域
功能域
数据域错误检测域
帧定界:
在MODBUSASCII方式下,一个8位的数据使用两个ASCII字符来表示。
比如16进制的0x3A用字符“3”和字符“A”表示。
其中“:
”表示帧的起始,“CRLF”表示帧的结束。
2.3MODBUSTCP方式
协议头
功能域
数据域
帧定界:
在MODBUSTCP方式下,由于模块的地址由IP地址确定,所以不再有地址域内容,考虑到TCP网络是可靠的数据传输网络,故不再有校验数据。
但是考虑到在IP网上数据到达的顺序可能与我们预期的数据不一致,故增加了一个数据序号,考虑到在MODBUSTCP协议上承载MODBUS协议,还在头部数据中增加了一个地址域。
MBAPHeader
:
地址
功
能代
码
数据
数
量数
据
1
...
数据
nLRC高字节LRC低字节
回车换行
MBAP
Header功能代码数据数量数据1
...
数据n
3支持命令
目前,本公司所生产的以太网分布式采集模块均采用该协议,MODBUSTCP方式。
支持的功能码主要包括如下几种:
01READCOILSTATUS
02READINPUTSTATUS
03READHOLDINGREGISTERS
04READINPUTREGISTERS
05FORCESINGLECOIL
06PRESETSINGLEREGISTER
15FORCEMULTIPLECOILS
16FORCEMULTIPLEREGISTERS
20READFILERECORD
21WRITEFILERECORD
4地址映射表
4.1读继电器状态
功能码:
01
说明:
读取输出继电器的状态
数据说明:
地址描述说明
00001第01路开关量输出当前状态=1高电平=0低电平保留
第01路开关量输出上电状态=1高电平=0低电平保留
第01路开关量输出安全状态=1高电平=0低电平保留
MODBUS请求
域名称字节数取值
功能码1byte0x01
MODBUS响应
错误响应
举例说明
4.2读保持寄存器
功能码:
03
说明:
读取保持寄存器的值
数据说明:
读取的是十六位整数或无符号整数
起始地址2byte0x0000to0xFFFF读取数量
2byte
1to2000(0x7D0
域名称字节数取值功能码1byte0x01
字节计数1byten=(读取数量+7/8
线圈状态
nbyte
域名称字节数取值功能码1byte0x01+0x80错误代码
1byte
0x1or0x2
请求响应域名称数据(hex域名称数据(hex功能码
01功能码01起始地址高(字节00字节计数03起始地址低(字节1327(h~05状态CD读取数量高(字节0035(h~28状态6B读取数量低(字节
13
38(h~36状态
05
地址描述
说明
40001第01路数字量脉冲输出16位低电平宽度40002第01路数字量脉冲输出
16位高电平宽度保留
第01路开关量脉冲计数
低16位计数数值40066第01路开关量脉冲计数
高16位计数数值保留
脉冲输出使能寄存器
置位:
开启,清位:
禁止保留
第1路模拟量输入模式
bit07--bit00采集量程编码;bit15--bit08必须清除为零。
40258
第2路模拟量输入模式
对于低速模拟量采集模块,由于各通的道量程需一致,故只需设置其通道一即可。
40259第3路模拟量输入模式40260第4路模拟量输入模式40261第5路模拟量输入模式40262第6路模拟量输入模式40263第7路模拟量输入模式40264第8路模拟量输入模式保留
第1路模拟量报警电平
正常状态:
0x0000下限报警:
0x0001上限报警:
0x0002目前各路模拟量共用一路报警输出,只需设置通道一。
40274第2路模拟量报警电平40275第3路模拟量报警电平40276第4路模拟量报警电平40277第5路模拟量报警电平40278第6路模拟量报警电平40279第7路模拟量报警电平40280第8路模拟量报警电平保留
第1路下限报警值
低16位下限报警值40290第1路下限报警值高16位下限报警值40291第2路下限报警值低16位下限报警值40292第2路下限报警值高16位下限报警值40293第3路下限报警值低16位下限报警值40294第3路下限报警值高16位下限报警值40295第4路下限报警值低16位下限报警值40296第4路下限报警值高16位下限报警值40297第5路下限报警值低16位下限报警值40298第5路下限报警值高16位下限报警值40299第6路下限报警值低16位下限报警值40300第6路下限报警值高16位下限报警值40301第7路下限报警值低16位下限报警值40302第7路下限报警值高16位下限报警值40303第8路下限报警值低16位下限报警值40304第8路下限报警值高16位下限报警值保留
第1路上限报警值
低16位上限报警值40322第1路上限报警值高16位上限报警值40323第2路上限报警值低16位上限报警值40324第2路上限报警值高16位上限报警值40325第3路上限报警值低16位上限报警值40326第3路上限报警值高16位上限报警值40327第4路上限报警值低16位上限报警值40328第4路上限报警值高16位上限报警值40329第5路上限报警值低16位上限报警值40330
第5路上限报警值
高16位上限报警值
MODBUS请求
MODBUS响应
错误响应
举例说明
注1:
脉冲输出电平宽度单位是:
毫秒;看门狗定时长度单位是:
毫秒注2:
看门狗控制寄存器的最高位上电为1,可以做模块复位判断。
40331第6路上限报警值低16位上限报警值40332第6路上限报警值高16位上限报警值40333第7路上限报警值低16位上限报警值40334第7路上限报警值高16位上限报警值40335第8路上限报警值低16位上限报警值40336第8路上限报警值
高16位上限报警值保留
看门狗控制寄存器
bit0:
0禁止,1开启bit1:
0正常,1溢出bit2:
0正常,1复位40514看门狗溢出寄存器看门狗超时时间常数40515看门狗复位寄存器
0x55AA
保留
域名称字节数取值功能码1byte0x03
起始地址2byte0x0000to0xFFFF读取数量
2byte
1to125(0x7D
域名称字节数取值功能码1byte0x03字节计数1byte2n
输入状态
2nbyte
域名称字节数取值功能码1byte0x03+0x80错误代码
1byte
0x1or0x2
请求响应域名称数据(hex域名称数据(hex功能码
03功能码03起始地址高(字节00字节计数02起始地址低(字节08输入寄存器高00读取数量高(字节00输入寄存器低
0A
读取数量低(字节
01
4.4读输入寄存器
功能码:
04
说明:
读取输入数据
数据说明:
读取的是十六位整数或无符号整数
地址描述说明
30257第1路模拟量输入低16位模拟量输入值
30258第1路模拟量输入高16位模拟量输入值
30259第2路模拟量输入低16位模拟量输入值
30260第2路模拟量输入高16位模拟量输入值
30261第3路模拟量输入低16位模拟量输入值
30262第3路模拟量输入高16位模拟量输入值
30263第4路模拟量输入低16位模拟量输入值
30264第4路模拟量输入高16位模拟量输入值
30265第5路模拟量输入低16位模拟量输入值
30266第5路模拟量输入高16位模拟量输入值
30267第6路模拟量输入低16位模拟量输入值
30268第6路模拟量输入高16位模拟量输入值
30269第7路模拟量输入低16位模拟量输入值
30270第7路模拟量输入高16位模拟量输入值
30271第8路模拟量输入低16位模拟量输入值
30272第8路模拟量输入高16位模拟量输入值
保留
第1路的报警状态0:
正常1:
下限2:
上限30290第2路的报警状态0:
正常1:
下限2:
上限30291第3路的报警状态0:
正常1:
下限2:
上限30292第4路的报警状态0:
正常1:
下限2:
上限30293第5路的报警状态0:
正常1:
下限2:
上限30294第6路的报警状态0:
正常1:
下限2:
上限30295第7路的报警状态0:
正常1:
下限2:
上限30296第8路的报警状态0:
正常1:
下限2:
上限保留
MODBUS请求
域名称字节数取值
功能码1byte0x04
起始地址2byte0x0000to0xFFFF
读取数量2byte1to125(0x7D
MODBUS响应
域名称字节数取值
功能码1byte0x04
字节计数1byte2n
输入状态2nbyte
错误响应
域名称字节数取值
功能码1byte0x04+0x80
错误代码1byte0x1or0x2
举例说明
请求响应
域名称数据(hex域名称数据(hex功能码04功能码04
起始地址高(字节00字节计数02
起始地址低(字节08输入寄存器高(900
读取数量高(字节00输入寄存器低(90A
读取数量低(字节01
4.5设置单个继电器
功能码:
05
MODBUS请求
域名称字节数取值
功能码1byte0x05
设置地址2byte0x0000to0xFFFF
设置内容2byte0x0000or0xFF00
0x0000释放继电器
0xFF00吸合继电器MODBUS响应
域名称字节数取值
功能码1byte0x05
设置地址2byte0x0000to0xFFFF
设置内容2byte0x0000or0xFF00
错误响应
域名称字节数取值
功能码1byte0x05+0x80
错误代码1byte0x1or0x2
举例说明
请求响应
域名称数据(hex域名称数据(hex功能码05功能码05
设置地址高(字节00设置地址高(字节00
设置地址低(字节05设置地址低(字节05
设置内容高(字节FF设置内容高(字节FF
设置内容低(字节00设置内容低(字节00
4.6设置单个保持寄存器
功能码:
06
MODBUS请求
域名称字节数取值
功能码1byte0x06
设置地址2byte0x0000to0xFFFF
设置内容2byte0x0000to0xFFFF
MODBUS响应
域名称字节数取值
功能码1byte0x06
设置地址2byte0x0000to0xFFFF
设置内容2byte0x0000to0xFFFF
错误响应
域名称字节数取值
功能码1byte0x06+0x80
错误代码1byte0x1or0x2
举例说明
请求响应
域名称数据(hex域名称数据(hex功能码06功能码06
设置地址高(字节00设置地址高(字节00
设置地址低(字节08设置地址低(字节08
设置内容高(字节00设置内容高(字节00
设置内容低(字节19设置内容低(字节19
4.7设置多个继电器
功能码:
0F
MODBUS请求
域名称字节数取值
功能码1byte0x0F
设置起始地址2byte0x0000to0xFFFF
设置长度2byte0x0000to0x07B0
字节计数1byten
设置内容nbyte
MODBUS响应
域名称字节数取值
功能码1byte0x0F
设置起始地址2byte0x0000to0xFFFF
设置长度2byte0x0000to0x07B0
错误响应
域名称字节数取值
功能码1byte0x0F+0x80
错误代码1byte0x1or0x2
举例说明
请求响应
域名称数据(hex域名称数据(hex功能码0F功能码0F
设置地址高(字节00设置地址高(字节00
设置地址低(字节13设置地址低(字节13
设置数量高(字节00设置数量高(字节00
设置数量低(字节0A设置数量低(字节0A
字节计数02
(字节CD
设置内容低(字节01
4.8设置多个保持寄存器
功能码:
10
MODBUS请求
域名称字节数取值
功能码1byte0x10
设置起始地址2byte0x0000to0xFFFF
设置长度2byte0x0000to0x07B0
字节计数1byte2n
设置内容2nbyte
MODBUS响应
域名称字节数取值
功能码1byte0x10
设置起始地址2byte0x0000to0xFFFF
设置长度2byte0x0000to0x07B0
错误响应
域名称字节数取值
功能码1byte0x10+0x80
错误代码1byte0x1or0x2
举例说明
请求响应
域名称数据(hex域名称数据(hex功能码10功能码10
设置地址高(字节00设置地址高(字节00
设置地址低(字节01设置地址低(字节01
设置数量高(字节00设置数量高(字节00
设置数量低(字节02设置数量低(字节02
字节计数04
(字节00
设置内容低(字节0A
设置内容高(字节01
设置内容低(字节02
4.9读文件记录
功能码:
14/06
读取文件记录,在MODBUS中,认为文件是一个由16BIT位串构成的数组,其寻址是按照地址进行的。
文件读取,规定读取的起始地址和读取长度,改变读取地址和长度就可以遍历整个文件。
文件没有名字,只有编号。
本系统仅支持一次读写一个文件。
MODBUS请求
域名称字节数取值
功能码1byte0x14
DAM-E3000DataAcquisitionModulesUser’sManual(V6.10)字节计数子功能码文件号记录号读取长度子功能码……1byte1byte2byte2byte2byte1byte……0x07to0xF50x060x0000to0xFFFF0x0000to0x270Fn0x06MODBUS响应域名称功能码字节计数子功能字节计数子功能码数据字节数1byte1byte1byte1byte2nbyte取值0x140x07to0xF50x07to0xF50x06错误响应域名称功能码错误代码字节数1byte1byte取值0x14+0x800x1or0x2举例说明请求域名称功能码字节计数子功能码文件号高(字节文件号低(字节记录号高(字节记录号低(字节读取长度高(字节读取长度低(字节数据(hex)140706000400010002响应域名称功能码字节计数响应计数子功能码记录数据高(字节记录数据低(字节记录数据高(字节记录数据低(字节数据(hex)140605060DFE00204.10写文件记录功能码:
15/06MODBUS请求域名称功能码字节计数字节数1byte1byte北京阿尔泰科技发展有限公司取值0x150x07to0xF516
DAM-E3000DataAcquisitionModulesUser’sManual(V6.10)子功能码文件号记录号写长度数据……1byte2byte2byte2byte2nbyte……0x060x0000to0xFFFF0x0000to0x270FnMODBUS响应域名称功能码字节计数子功能码文件号记录号写长度数据字节数1byte1byte1byte2byte2byte2byte2nbyte取值0x150x07to0xF50x060x0000to0xFFFF0x0000to0x270Fn错误响应域名称功能码错误代码字节数1byte1byte取值0x15+0x800x1or0x2举例说明请求域名称功能码字节计数子功能码文件号高(字节文件号低(字节记录号高(字节记录号低(字节写长度高(字节写长度低(字节写数据数据(hex)150B060004000100024byte响应域名称功能码字节计数子功能码文件号高(字节文件号低(字节记录号高(字节记录号低(字节写长度高(字节写长度低(字节写数据数据(hex)150B060004000100024byte4.11EEPROM分配//file0#defineMODULE_NET_ADDR#defineMODULE_VER_ADDR#defineADC_ZERO_ADDR北京阿尔泰科技发展有限公司0x00000x00200x008017
DAM-E3000DataAcquisitionModulesUser’sManual(V6.10)#defineADC_SLOPE_ADDR//file1#defineNET_CONFIG_ADDR//file2#defineDIG_POWER_ADDR#defineDIG_SAFE_ADDR//file3#defineADC_CONTRL_ADDR#defineADC_LIMITL_ADDR#defineADC_LIMITU_ADDR#defineADC_ALARMC_ADDR//file4tofile7……0x00840x00000x00000x00040x00000x00200x00600x00A0说明:
EEPROM为8kbyte容量,分为8个文件块,每个大小为1kbyte。
1、MODULE_NET_ADDR恢复出厂设置的网络配置参数。
结构如下表:
字节数内容4IP地址4默认网关4子网掩码6MAC地址2、MODULE_VER_ADDR模块版本信息。
结构如下表:
字节内容3、ADC_ZERO_ADDR模拟量采集零点校正系数,字节浮点数表示