modbus协议对应地址
modbus地址对应表
modbus地址对应表Modbus是一种串行通信协议,由Modicon公司(现在的施耐德电气Schneider Electric)于1979年发布,用于可编程逻辑控制器(Programmable logic controllers,PLCs)。
Modbus事实上已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
在工业应用场景中使用Modbus的主要原因是:考虑到Modbus本就为了工业应用而开发,公开发布,并且无版权要求,易于部署和维护,未对供应商修改移动本地比特或字节施加限制。
Modbus支持多个设备连接到同一网络上进行通信,例如,一个能测量温度和湿度并将结果传送给计算机的装置。
在数据采集与监视控制(Supervisory control and data acquisition, SCADA)系统中,Modbus常用于连接监控计算机与远程终端设备(Remote terminal unit,RTU)。
许多数据类型是根据梯形逻辑及其驱动继电器在工业上的使用而得名的:单比特物理输出称为线圈,单比特物理输入称为离散输入或触点。
自2004年4月施耐德电气将权利转让给Modbus组织以来,该组织一直管理着Modbus协议的开发和更新。
Modbus组织是一个倡导持续使用该技术的协会,其由兼容Modbus设备的用户和供应商组成。
Modbus协议目前存在多个用于串行端口、以太网和其他支持互联网协议套件的网络版本。
Modbus协议有许多变体:Modbus RTU —这用于串行通信,并采用数据的紧凑二进制表示进行协议通信。
RTU格式使用带有循环冗余校验的校验和的命令/数据作为错误校验机制,以确保数据的可靠性。
Modbus RTU是Modbus 最常见的实现方式。
Modbus RTU消息必须连续传输,不能有字符间的延迟。
Modbus消息由空闲(静默)时段构成(分隔)。
Modbus ASCII —用于串行通信,并利用ASCII字符进行协议通信。
modbus地址对应表
modbus地址对应表曾经做过单片机和以下20种PLC的Modbus RTU串口通信,现将这20种PLC输入、输出和寄存器元件与Modbus编号地址对应表分享出来。
三菱FX3G-40MR/ES-A、西门子S7-200 CPU226 AC/DC/RLY、欧姆龙CP1H-X40DR-A、松下AFPX-C40R、台达DVP-12SA2、信捷XC5-48、永宏FBs-40MC、产电XBC-DR40S、汇川H2u-2416MT-XP、英威腾IVC2H-1616MAT6、基恩士KV-N40AR、施耐德电气TM218LDAE40DRPHN、海为H40S2R系列、维控LX3V1212MT系列、和利时LE5109、台安AP-340BR-A、罗克韦尔1766-L32BWA、合信CTH200系列CPU H226L、富士SPE NW0P40R-31、步科K508-40AR。
,三菱X元件支持Modbus之02功能码;Y元件支持Modbus之01、05、15功能码;D元件支持Modbus之03、06、16功能码。
西门子I元件支持Modbus之02功能码;Q元件支持Modbus之01、05、15功能码;V元件支持Modbus之03、06、16功能码。
欧姆龙CIO0元件支持Modbus之02功能码;CIO100元件支持Modbus之01、05、15功能码;D元件支持Modbus之03、06、16功能码。
松下X元件支持Modbus之02功能码;Y元件支持Modbus之01、05、15功能码;DT元件支持Modbus之03、06、16功能码。
台达X元件支持Modbus之02功能码;Y元件支持Modbus之01、05、15功能码;D元件支持Modbus之03、06、16功能码。
信捷X元件支持Modbus之02功能码;Y元件支持Modbus之01、05、15功能码;D元件支持Modbus之03、06、16功能码。
永宏X元件支持Modbus之02功能码;Y元件支持Modbus之01、05、15功能码;D元件支持Modbus之03、06、16功能码。
关于 MODBUS 各地址的说明
关于 MODBUS 各地址的说明MODBUS 协议中设备类型为 0x,1x,3x,4x,5x,6x,还有 4x_bit,3x_bit 等,下面分别说明这些设备类型在 MODBUS 协议中支持哪些功能码。
0x:是一个可读可写的设备类型,相当于操作 PLC 的输出点。
该设备类型读位状态的时候,发出的功能码为 01H,写位状态的时候发出的功能码为 05H。
1x:是一个只读的设备类型,相当于读 PLC 的输入点。
读位状态的时候发出的功能码为 02H。
3x:是一个只读的设备类型,相当于读 PLC 的模拟量。
读数据的时候,发出的功能码为 04H。
4x:是一个可读可写的设备类型,相当于操作 PLC 的数据寄存器。
当读数据的时候,发出的功能码是 03H,当写数据的时候发出的功能码是 10H。
5x:该设备类型与 4x 的设备类型属性是一样的。
即发出读写的功能码完全一样。
不同之处在于,当为双字时,例如 32_bit unsigned 格式的数据,使用 5x 和 4x 两种设备类型分别读取数据时,高字和低字的位置是颠倒的。
例如,使用 4x 设备类型读到的数据是 0x1234,那么使用 5x设备类型读取的数据是 0x3412。
6x:是一个可读可写的设备类型,读数据的时候发出的功能码也是 03H,与 4x 不同之处在于写数据的时候,发出的功能码为 06H,即写单个寄存器的数据。
3x_bit:该设备类型支持的功能码与 3x 设备类型完全一致,不同之处是,3x 是读数据,而3x_bit 是读数据中的某一个 bit 的状态。
4x_bit:该设备类型支持的功能码与 4x 设备类型完全一致,不同之处是,4x 是读数据,而4x_bit 是读数据中的某一个 bit 的状态。
寄存器PLC地址与寄存器modbus协议地址【2024版】
寄存器PLC地址与寄存器modbus协议地址寄存器PLC地址指存放于控制器中的地址,这些控制器可以是PLC,也可以使触摸屏,或是⽂本显⽰器。
PLC地址⼀般采⽤10进制描述,共有5位,其中第⼀位代码寄存器类型。
第⼀位数字和寄存器类型的对应关系如表1所⽰。
PLC地址例如40001、30002等。
寄存器modbus协议地址指通信时使⽤的寄存器地址,在实际编程中,由于寄存器PLC地址前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。
例如PLC地址40001对应寻址地址0x0000,40002对应寻址地址0x0001,寄存器寻址地址⼀般使⽤16进制描述。
再如,PLC寄存器地址40003对应协议地址0002,PLC寄存器地址30003对应协议地址0002。
在实际编程中,由于前缀的区分作⽤,所以只需说明后4位数,⽽且需转换为4位⼗六进制地址。
⽀持 Modbus 协议的设备或软件,使⽤时⽤户直接设置或看到的应 当是 Modbus 数据地址。
Modbus 地址所访问的数据,是通过各种 “功能”读写⽽来。
功能码是 Modbus 地址的底层。
如果 Modbus 通 信的⼀⽅提供的所谓 Modbus 协议只有功能码,则需要注意了解此 功能号与 Modbus 地址间的对应关系。
使⽤ modbus 地址时应注意下述问题:1)40001~4xxxx 是美国 modicon 公司和 ge 公司 plc 使⽤的 modbus 地址,它是基于1的地址,即同类元件的⾸地址为1。
西门⼦plc 的 modbus 地址是基于0的地址。
2)美国的 modbus 地址左起第2位⽤来表⽰元件的类型,例如 i0.0的 modbus 地址为010001。
因为数据类型已经包含在功能码中了,西门⼦的 i0.0的 modbus 地址实际上为000000, i2.0的 modbus 地址为 000016(或⼗六进制数16#0010) ,⽽不是010017。
信捷plc__modbus地址协议对照表
竭诚为您提供优质文档/双击可除信捷plc__modbus地址协议对照表篇一:信捷plc作为modbus从站时通讯格式设定方法信捷plc作为modbus从站接入dcs系统的通讯格式设定方法硬件准备:1.笔记本电脑一台(需自备)b转Rs232串口线一根(需自备)软件准备:1.信捷xc系列plc编程软件硬件连接:1.将串口转接线连接至电脑,然后将电控柜触摸屏上的通讯线圆头插到plc的左侧通讯口,db9与232接口连接。
2.plc接入dcs系统时,plc下部端子排的a为485+,b 位485-。
参见下图软件设置:1.安装xc系列plc编程软件2.文件—更改plc机型—xc3-24--确定3.左侧工程列表里单击plc串口,如下图4.单击串口1,如下图5.在下拉列表中选择串口2,如下图6.此时出现的画面即为485通讯端口的通讯设置画面,在设置成需要的从站地址等信息后,单击写入plc,然后断电重启plc即完成串口的设置工作。
7.通讯地址参见《信捷plc作为modbus从站通讯地址》pdF文件中260-263页,已添加书签。
8.设置完成后,为避免通讯失败,请将触摸屏通讯线plc 一端保留在左侧通讯口,右侧通讯口与端子上的通讯口为同一个通讯口,不得同时使用。
谢谢!篇二:信捷plc通讯信捷plc在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照modbusRtu的数据格式与其进行数据交换;如果信捷plc作为上位机,当下位机也支持modbusRtu协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持modbusRtu协议,则可使用自由格式通讯,下面为大家讲解相关使用:1.什么是modbusRtu协议?请阅读《modbus协议中文版.pdf》,通过这个介绍你会对modbus协议有所了解,其中还详细介绍了modbus通讯的另一种模式——modbusascii模式,关于两者之间的区别,在此不再重复阐述,《modbus协议中文版.pdf》上都有介绍,使用中请区分Rtu和ascii模式,不能笼统的认为使用的协议时modbus协议。
modbus协议各表详细说明
10 指令发送数据格式举例为:
发送数据 01
10
0000
0002
04
0000 0000
CRC
含义
地址
连续下写 连续下写 总字节 指令
的首地址 数据个数 数据个数×2
下写的数据
校验码
—1—
各型号仪表详细说明 XM708 XM708P XM808/908 XM808P/908P XMH XMT XMG/XMG-M
警不存在,为 1 表示报警成立。
7
6
5
4
3
2
1
0
0
0
0
0
AL4 报警 AL3 报警 AL2 报警 AL1 报警
—8—
XMG/XMG-M
1、03 指令参数地址 参数名 AL1 AL2 AL3 AL4 dLY1 dLY2 dLY3 dLY4 Alo1 Alo2 Alo3 Alo4 dF1 dF2 dF3 dF4 PF CHO Bout Loc1 Addr bAud Sn dip
diP
小数点位置
diL
下限显示限值
0BH
CSC
冷端补偿参数
1BH
0CH
SF
超调抑制参数
1CH
0DH
SVL
给定值下限限定
1DH
diH
上限显示限值
Sc
平移修正参数
0EH
SVH
给定值上限限定
1EH
10H
曲线运行状态
16H
(2)曲线设置参数
参数
参数含义
通讯地址
C01
第一段曲线的设定值
1BH
T01
第一段曲线的运行时间
参数含义 平移修正参数 控制输出方式 控制输出下限 控制输出上限 报警输出定义参数 正反作用选择
modbus地址对应表
modbus地址对应表
Modbus协议定义的寄存器地址是5位十进制地址,即:
线圈(DO)地址:00000~09999
触点(DI)地址:10000~19999
输入寄存器(AI)地址:30000~39999
输出寄存器(AO)地址:40000~49999
由于上述各类地址是唯一对应的,因此有些资料就以其第一个数字区分各类地址,即:0x代表线圈(DO)类地址,1x代表触点(DI)类地址、3x代表输入寄存器(AI)类地址、4x代表输出寄存器(AO)类地址。
在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:
对供应商来说,修改移动本地的比特或字节没有很多限制
Modbus允许多个(大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。
modbus tcp for wago
第 1 页 共 1 页 WAGO Electronic(Tianjin)LTD. Technical Support Dept. Lilianwang通过MODBUS TCP 协议访问 WAGO IO (750-841/842)的地址对应在编程软件W AGO-I/O-PRO 中可访问750-842/841的输入地址%IW256~%IW511与输出地址%QW256~%QW511。
这两部分地址为750-841/842的网络数据地址,用于与MODBUS TCP 主机进行内部数据交换。
可以通过MODBUS TCP 通讯协议以“6位整数”方式访问750-841/842的网络数据地址:MODBUS TCPW AGO I/OPRO 32 40257~40512 只可写,不可读 40769~41024 可写,可读 %IW256~%IW511 30257~30512不可写,只可读%QW256~%QW511可以通过MODBUS TCP 通讯协议方式访问750-841/842的网络数据地址:MODBUS TCPW AGO I/OPRO 32 04097~08192 只可写,不可读 08193~012288 可写,可读 %IW256.0~%IW511.15 14097~18192 不可写,只可读%QW256.0~%QW511.15I/O 寻址MODBUS TCPW AGO I/OPRO 32 00001~00256 只可写,不可读 00513~00768 可写,可读 1#DO~256#DO DO 10001~10256 不可写,只可读 1#DI~256#DI DI 30001~30256 不可写,只可读 1#AI~256#AI AI 40001~40256 只可写,不可读 40513~40768 可写,可读1#AO~256#AOAOM 寄存器寻址可以通过MODBUS TCP 通讯协议以“6位整数”方式访问750-841/842的%MW 寄存器数据地址:MODBUS TCPW AGO I/OPRO 32 312289~316384 只可读,不可写 %MW0~%MW4095 %MW 412289~416384 只可写,不可读 %MW0~%MW4095 %MW 112289~132768 只可读,不可写%MX0.0~%MX1279.15 %MX 012289~032768 可写,可读%MX0.0~%MX1279.15%MX注: 以上表格中下划线部分为MODBUS 数据地址标示符。
关于-MODBUS-各地址的说明
关于-MODBUS-各地址的说明关于 MODBUS 各地址的说明MODBUS 协议中设备类型为0x,1x,3x,4x,5x,6x,还有4x_bit,3x_bit 等,下面分别说明这些设备类型在MODBUS 协议中支持哪些功能码。
0x:是一个可读可写的设备类型,相当于操作PLC 的输出点。
该设备类型读位状态的时候,发出的功能码为01H,写位状态的时候发出的功能码为 05H。
1x:是一个只读的设备类型,相当于读PLC 的输入点。
读位状态的时候发出的功能码为 02H。
3x:是一个只读的设备类型,相当于读PLC 的模拟量。
读数据的时候,发出的功能码为 04H。
3x-DINV:是一个只读的设备类型,双字寄存器, 3X地址读取双字寄存器时,高字在前,低字在后。
3x-DINV正好相反。
4x:是一个可读可写的设备类型,相当于操作PLC 的数据寄存器。
当读数据的时候,发出的功能码是03H,当写数据的时候发出的功能码是 10H。
4x-DINV:是一个可读可写的设备类型,双字寄存器, 4X地址表示双字寄存器时,高字在前,低字在后。
4x-DINV正好相反。
例如,使用4x设备类型读到的数据是0x56781234,那么使用4x-DINV设备类型读到的数据是0x12345678。
5x:该设备类型与4x的设备类型属性是一样的。
即发出读写的功能码完全一样,不同之处在于:当为双字时,例如32_bitunsigned格式的数据,使用5x和4x两种设备类型分别读取数据时,高字和低字的字节位置是颠倒的。
例如,使用4x设备类型读到的数据是0x56781234,那么使用5x设备类型读到的数据是0x78563412。
6x:是一个可读可写的设备类型,读取数据的时候,发出的功能码也是03H,与4x不同之处在于写数据的时候发出的功能码时06H,即写单个寄存器的数据。
3x_bit:该设备类型支持的功能码与3x 设备类型完全一致,不同之处是,3x 是读数据,而3x_bit 是读数据中的某一个 bit 的状态。
modbus地址对应表
Modbus协议定义的寄存器地址是5位十进制地址,即:
线圈(DO)地址:00000~09999
触点(DI)地址:10000~19999
输入寄存器(AI)地址:30000~39999
输出寄存器(AO)地址:40000~49999
由于上述各类地址是唯一对应的,因此有些资料就以其第一个数字区分各类地址,即:0x代表线圈(DO)类地址,1x代表触点(DI)类地址、3x代表输入寄存器(AI)类地址、4x代表输出寄存器(AO)类地址。
在实际编程中,由于前缀的区分作用,所以只需说明后4位数,而且需转换为4位十六进制地址。
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。
Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus比其他通信协议使用的更广泛的主要原因有:
对供应商来说,修改移动本地的比特或字节没有很多限制
Modbus允许多个(大约240个) 设备连接在同一个网络上进行通信,举个例子,一个由测量温度和湿度的装置,并且将结果发送给计算机。
在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。
信捷plc__modbus地址协议对照表
信捷plc__modbus地址协议对照表篇一:信捷PLC作为modbus从站时通讯格式设定方法信捷PLC作为MODBUS从站接入DCS系统的通讯格式设定方法硬件准备:1. 笔记本电脑一台(需自备)2. USB转RS232串口线一根(需自备)软件准备:1. 信捷XC系列plc编程软件硬件连接:1.将串口转接线连接至电脑,然后将电控柜触摸屏上的通讯线圆头插到plc的左侧通讯口,DB9与232接口连接。
2.plc接入DCS系统时,plc下部端子排的A为485+,B位485-。
参见下图软件设置:1. 安装XC系列plc编程软件2. 文件—更改plc机型—XC3-24--确定3. 左侧工程列表里单击PLC串口,如下图4. 单击串口1,如下图5. 在下拉列表中选择串口2,如下图6. 此时出现的画面即为485通讯端口的通讯设置画面,在设置成需要的从站地址等信息后,单击写入PLC,然后断电重启PLC即完成串口的设置工作。
7.通讯地址参见《信捷PLC作为modbus从站通讯地址》PDF文件中260-263页,已添加书签。
8.设置完成后,为避免通讯失败,请将触摸屏通讯线plc 一端保留在左侧通讯口,右侧通讯口与端子上的通讯口为同一个通讯口,不得同时使用。
谢谢!篇二:信捷PLC 通讯信捷PLC在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照MODBUS RTU的数据格式与其进行数据交换;如果信捷PLC作为上位机,当下位机也支持MODBUS RTU协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持MODBUS RTU协议,则可使用自由格式通讯,下面为大家讲解相关使用:1. 什么是MODBUS RTU协议?请阅读《Modbus协议中文版.pdf 》,通过这个介绍你会对MODBUS 协议有所了解,其中还详细介绍了modbus 通讯的另一种模式—— MODBUS ASCII 模式,关于两者之间的区别,在此不再重复阐述,《Modbus协议中文版.pdf 》上都有介绍,使用中请区分RTU 和ASCII 模式,不能笼统的认为使用的协议时MODBUS 协议。
modbus协议对应地址
CPU上的通信口(Porto )支持Modbus RTU从站通信协议S7-200 CPU上的通信口PortO可以支持Modbus RTI协议,成为Modbus RTL从站。
此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
如果想在S7-200 CPU之间、或者其他支持Modbus RTU的设备使用Modbus RTU 协议通信,需要由有S7-200 CPU做Modbus主站。
S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
详情请参考《S7-200系统手册》之相关章节。
要实现ModbusRTl通信,需要STEP7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP7-Micro/WIN32 V3.2 Instruction Library (指令库)。
Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
Modbus RTU从站指令库只支持CPU上的通信0 口(Port0)。
参考:Modbus RTU主站指令库基本步骤:1. 检查Micro/WIN 的软件版本,应当是STEP 7-Micro/WIN V3.2 以上版本。
2. 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT 和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32 V3.2 的Instruction Library (指令库)软件包;图 1. 指令树中的库指令3. 编程时使用SM0.1 调用子程序MBUS_INIT 进行初始化,使用SM0.0 调用MBUS_SLAVE ,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;图中参数意义如下:a. 模式选择:启动/停止Modbus, 1=启动;0=停止b. 从站地址:Modbus从站地址,取值1~247c. 波特率:可选1200,2400,4800,9600, 19200,38400, 57600,115200d. 奇偶校验:0=无校验;仁奇校验;2=偶校验e. 延时:附加字符间延时,缺省值为0f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128g. 最大AI字数:参与通信的最大AI通道数,可为16或32h. 最大保持寄存器区:参与通信的V存储区字(VW)i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式)j. 初始化完成标志:成功初始化后置1k. 初始化错误代码l. Modbus执行:通信中时置1,无Modbus通信活动时为0。
信捷plc__modbus地址协议对照表
竭诚为您提供优质文档/双击可除信捷plc__modbus地址协议对照表篇一:信捷plc作为modbus从站时通讯格式设定方法信捷plc作为modbus从站接入dcs系统的通讯格式设定方法硬件准备:1.笔记本电脑一台(需自备)b转Rs232串口线一根(需自备)软件准备:1.信捷xc系列plc编程软件硬件连接:1.将串口转接线连接至电脑,然后将电控柜触摸屏上的通讯线圆头插到plc的左侧通讯口,db9与232接口连接。
2.plc接入dcs系统时,plc下部端子排的a为485+,b 位485-。
参见下图软件设置:1.安装xc系列plc编程软件2.文件—更改plc机型—xc3-24--确定3.左侧工程列表里单击plc串口,如下图4.单击串口1,如下图5.在下拉列表中选择串口2,如下图6.此时出现的画面即为485通讯端口的通讯设置画面,在设置成需要的从站地址等信息后,单击写入plc,然后断电重启plc即完成串口的设置工作。
7.通讯地址参见《信捷plc作为modbus从站通讯地址》pdF文件中260-263页,已添加书签。
8.设置完成后,为避免通讯失败,请将触摸屏通讯线plc 一端保留在左侧通讯口,右侧通讯口与端子上的通讯口为同一个通讯口,不得同时使用。
谢谢!篇二:信捷plc通讯信捷plc在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照modbusRtu的数据格式与其进行数据交换;如果信捷plc作为上位机,当下位机也支持modbusRtu协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持modbusRtu协议,则可使用自由格式通讯,下面为大家讲解相关使用:1.什么是modbusRtu协议?请阅读《modbus协议中文版.pdf》,通过这个介绍你会对modbus协议有所了解,其中还详细介绍了modbus通讯的另一种模式——modbusascii模式,关于两者之间的区别,在此不再重复阐述,《modbus协议中文版.pdf》上都有介绍,使用中请区分Rtu和ascii模式,不能笼统的认为使用的协议时modbus协议。
modbus地址对应表
D元件支持Modbus之03、06、16功能码。
松下
X元件支持Modbus之02功能码;
Y元件支持Modbus之01、05、15功能码;
DT元件支持Modbus之03、06、16功能码。
台达
X元件支持Modbus之02功能码;
Y元ห้องสมุดไป่ตู้支持Modbus之01、05、15功能码;
自2004年4月施耐德电气将权利转让给Modbus组织以来,该组织一直管理着Modbus协议的开发和更新。[1] Modbus组织是一个倡导持续使用该技术的协会,其由兼容Modbus设备的用户和供应商组成。
D元件支持Modbus之03、06、16功能码。
Modbus是一种串行通信协议,由Modicon公司(现在的施耐德电气Schneider Electric)于1979年发布,用于可编程逻辑控制器(Programmable logic controllers,PLCs)。Modbus事实上已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。 在工业应用场景中使用Modbus的主要原因是:
考虑到Modbus本就为了工业应用而开发,
公开发布,并且无版权要求,
易于部署和维护,
未对供应商修改移动本地比特或字节施加限制。
Modbus支持多个设备连接到同一网络上进行通信,例如,一个能测量温度和湿度并将结果传送给计算机的装置。在数据采集与监视控制(Supervisory control and data acquisition, SCADA)系统中,Modbus常用于连接监控计算机与远程终端设备(Remote terminal unit,RTU)。许多数据类型是根据梯形逻辑及其驱动继电器在工业上的使用而得名的:单比特物理输出称为线圈,单比特物理输入称为离散输入或触点。
Modbus标准通讯协议格式
HLP A+ Modbus标准通讯协议格式注:BYTECOUNT = 2 * NUM错误时变频器返回数据格式:“ : ”ADDRESS 0X83 01 or02 or 03 0r 04LRC 0X0D 0X0A如:要读变频器功能码CD000中的设定值(假如为30.00HZ)(CD160=CD161=1 CD162=0)应发送数据:“:”03 00 00 00 01 FC 0D 0A (16进制),转为ASCII码格式为3A 30 33 30 30 30 30 30 30 30 31 46 43 0D 0A(ASCII)变频器返回数据:“:”01 03 02 0B B8 37 0D 0A(16进制),转为ASCII码格式为:3A 30 31 30 33 30 32 30 42 42 38 33 37 0D DA返回的数据位为“0BB8”(16进制)转换为10进制数为3000表示CD000设置值为30.0004 读取输入寄存器上位机发送数据格式:“: “ADDRESS 04 ADDRH ADDRL NUMH NUML LRC 0X0D0X0A注:ADDR: 0 ---- 0XFFFF;NUM: 0001 ---- 0004 (NUM为要读的输入寄存器的数量) 正确时变频器返回数据格式:“: “ADDRESS 04 BYTECOUNT DATAH1 DATAL1 ---- DA TAHN DA TALN注:BYTECOUNT = NUM * 2错误时变频器返回数据格式:“ : “ADDRESS 0X84 01 or 02 or 03 or 04 LRC 0X0D 0X0A如:要读变频器温度显示值(假如温度为36.2)(CD160=CD161=1 CD162=0)应发送数据:“:”01 04 00 06 00 01 F4 0D 0A(16进制),转为ASCII格式为:3A 30 31 30 34 30 30 30 36 30 30 30 31 46 34 0D 0A(ASCII)变频器返回数据:“:”01 04 02 01 6A 8E 0D 0A(16进制),转为ASCII码格式为3A 30 31 30 34 30 32 30 31 36 41 38 45 0D 0A(ASCII)返回的数据位为“016A”(16进制)转换为10进制为“362”表示温度为36.205 写单个线圈状态上位机发送数据格式:“: “ADDRESS 05ADDRH ADDRL DA TAH DATAL LRC 0X0D0X0A注:ADDR: 0 ---- 0XFFFF DATA: 0X0000 or 0XFF00(16进制数)正确时变频器返回数据格式:“: “ADDRESS 05 ADDRH ADDRL DA TAH DATAL LRC 0X0D0X0A错误时变频器返回数据格式:“ : ”ADDRESS 0X85 01 or02 or 03 0r 04 LRC 0X0D 0X0A06 写单个保持寄存器值上位机发送数据格式:“: “ADDRESS 06 ADDRH ADDRL DA TAH DA TAL LRC 0X0D0X0A注:ADDR: 0 ---- 0XFFFF正确时变频器返回数据格式:“: “ADDRESS 06 ADDRH ADDRL DA TAH DA TAL LRC 0X0D0X0A错误时变频器返回数据:“ : ”ADDRESS 0X86 01 or02 or 03 0r 04 LRC 0X0D 0X0A如:要对变频器功能码CD000写入30.00(CD160=CD161=1 CD162=0),应发送数据:“:”01 06 00 00 0B B8 36 0D 0A(16进制),转为ASCII格式为3A 30 31 30 36 30 30 30 30 30 42 42 38 33 36 0D 0A(ASCII)变频器返回数据:“:”01 06 00 00 0B B8 36 0D 0A(16进制),转为ASCII 格式为3A 30 31 30 36 30 30 30 30 30 42 42 38 33 36 0D 0A(ASCII)返回的数据位为“0BB8”(16进制)转换为10进制为“3000”表示CD000设置值为30.000F 写多个线圈状态上位机发送数据格式“: “ADDRESS 0F ADDRH ADDRL NUMH NUML COUNTDATAH1 DATAL1 DATA2H DATA2L ------- DA TANH DA TANL LRC0X0D 0X0A注:ADDR: 0 -------- 0XFFFF ; NUM: 1 ------- 1968 / 0X7B0 ; COUNT: NUM / 8或NUM/ 8 + 1 (NUM为要写的线圈的数量)正确时变频器返回数据格式:“: “ADDRESS 0F ADDRH ADDRL NUMH NUML LRC 0X0D0X0A错误时变频器返回数据格式:“ : ”ADDRESS 0X8F 01 or02 or 03 0r 04 LRC 0X0D 0X0A如:要使变频器正转(CD160=CD161=1 CD162=0),应发送数据:“:”01 0F 00 48 00 08 01 02 LRC 0D 0A(16进制),转为ASCII 格式为3A 30 31 30 46 30 30 34 38 30 30 30 38 30 31 30 30 30 32 LRC 0D 0A(ASCII)“0002”即0000 0010; 即线圈0x49置为1,给变频器发正转命令。
modbus协议各表详细说明
1CH
…… T10
第十段曲线的运行时间
(3)曲线运行状态参数地址:16H,将此数据转换为二进制格式,共有 16 位(0~15),其中的 2、3
位用于曲线的 Stop/Run/Hold 控制
运行状态
Stop
Hold
Run
数据位数
2
1
1
0
3
1
0
0
2、04 指令参数地址
地址
00H
01H
02H
03H
04H
05H
Modbus 通讯协议说明
Modbus 通讯协议介绍
仪表可以采用 Modbus-RTU 模式进行上位机通讯,协议格式为:8 个数据位、1 个停止位、无校验
位,发送接收数据都是以十六进制格式进行。
1、发送数据格式:
发送字节
1
2
3
4
5
6
7
含义
地址
读/写
A1
A2
A3
A4
CRC
仪表地址 03H,04H,06H
仪表通讯波特率
/
dF
报警回差
05H
dL
输入数字滤波
17H
oPAd
PID 控制方式
06H
mAn
运行状态
18H
P
速率参数
07H
Loc
参数密码锁
19H
I
保持参数
08H
SET1~8
现场参数 1~8
/
dt
滞后时间参数
09H
CSC
热电偶冷端修正
81H
T
控制周期
0AH
SF
超限抑制参数
82H
信捷plc__modbus地址协议对照表
竭诚为您提供优质文档/双击可除信捷plc__modbus地址协议对照表篇一:信捷plc作为modbus从站时通讯格式设定方法信捷plc作为modbus从站接入dcs系统的通讯格式设定方法硬件准备:1.笔记本电脑一台(需自备)b转Rs232串口线一根(需自备)软件准备:1.信捷xc系列plc编程软件硬件连接:1.将串口转接线连接至电脑,然后将电控柜触摸屏上的通讯线圆头插到plc的左侧通讯口,db9与232接口连接。
2.plc接入dcs系统时,plc下部端子排的a为485+,b 位485-。
参见下图软件设置:1.安装xc系列plc编程软件2.文件—更改plc机型—xc3-24--确定3.左侧工程列表里单击plc串口,如下图4.单击串口1,如下图5.在下拉列表中选择串口2,如下图6.此时出现的画面即为485通讯端口的通讯设置画面,在设置成需要的从站地址等信息后,单击写入plc,然后断电重启plc即完成串口的设置工作。
7.通讯地址参见《信捷plc作为modbus从站通讯地址》pdF文件中260-263页,已添加书签。
8.设置完成后,为避免通讯失败,请将触摸屏通讯线plc 一端保留在左侧通讯口,右侧通讯口与端子上的通讯口为同一个通讯口,不得同时使用。
谢谢!篇二:信捷plc通讯信捷plc在与其它设备通讯的时候,如果作为下位机,则尚未机必须按照modbusRtu的数据格式与其进行数据交换;如果信捷plc作为上位机,当下位机也支持modbusRtu协议的时候,可直接使用相关通讯指令进行通讯,使程序编写更简单,效率更高,如果下位机不直接支持modbusRtu协议,则可使用自由格式通讯,下面为大家讲解相关使用:1.什么是modbusRtu协议?请阅读《modbus协议中文版.pdf》,通过这个介绍你会对modbus协议有所了解,其中还详细介绍了modbus通讯的另一种模式——modbusascii模式,关于两者之间的区别,在此不再重复阐述,《modbus协议中文版.pdf》上都有介绍,使用中请区分Rtu和ascii模式,不能笼统的认为使用的协议时modbus协议。
modbus协议对应地址(精品)
modbus协议对应地址CPU 上的通信口(Port0)支持Modbus RTU 从站通信协议S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。
此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
如果想在S7-200 CPU之间、或者其他支持Modbus RTU的设备使用Modbus RTU协议通信,需要由有S7-200 CPU做Modbus主站。
S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
详情请参考《S7-200系统手册》之相关章节。
要实现Modbus RTU通信,需要STEP7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modb us RTU功能是通过指令库中预先编好的程序功能块实现的。
Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。
参考:Modbus RTU 主站指令库基本步骤:1.检查Micro/WIN的软件版本,应当是STEP 7-Micro/WINV3.2以上版本。
2.检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;图1. 指令树中的库指令3.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;图2.调用Modbus RTU通信指令库图中参数意义如下:a.模式选择:启动/停止Modbus,1=启动;0=停止b.从站地址:Modbus从站地址,取值1~247c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200d.奇偶校验:0=无校验;1=奇校验;2=偶校验e.延时:附加字符间延时,缺省值为0f.最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128g.最大AI字数:参与通信的最大AI通道数,可为16或32h.最大保持寄存器区:参与通信的V存储区字(VW)i.保持寄存器区起始地址:以&VBx指定(间接寻址方式)j.初始化完成标志:成功初始化后置1k.初始化错误代码l.Modbus执行:通信中时置1,无Modbus 通信活动时为 0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。
此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。
如果想在S7-200 CPU之间、或者其他支持Modbus RTU的设备使用Modbus RTU 协议通信,需要由有S7-200 CPU做Modbus主站。
S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
详情请参考《S7-200系统手册》之相关章节。
要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。
Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。
参考:Modbus RTU 主站指令库基本步骤:1.检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。
2.检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLA VE两个子程序。
如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;图1. 指令树中的库指令3.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLA VE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;图2. 调用Modbus RTU通信指令库图中参数意义如下:a.模式选择:启动/停止Modbus,1=启动;0=停止b.从站地址:Modbus从站地址,取值1~247c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200d.奇偶校验:0=无校验;1=奇校验;2=偶校验e.延时:附加字符间延时,缺省值为0f.最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128g.最大AI字数:参与通信的最大AI通道数,可为16或32h.最大保持寄存器区:参与通信的V存储区字(VW)i.保持寄存器区起始地址:以&VBx指定(间接寻址方式)j.初始化完成标志:成功初始化后置1k.初始化错误代码l.Modbus执行:通信中时置1,无Modbus 通信活动时为0。
m.错误代码:0=无错误4.在CPU的V数据区中分配库指令数据区(Library Memory);5.如有必要,使用主站软件测试。
注意:由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。
注意Modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。
在图2的例子中,规定了 Modbus 保持寄存器区从 VB0 开始(HoldStart = VB0),并且保持寄存器为1000个字(MaxHold=1000),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB0~VB1999共2000个字节。
因此分配库指令保留数据区时至少要从VB2000开始。
当然保持区不一定要从VB0开始。
注意:你选用的CPU的V存储区大小!CPU型号不同V数据存储区大小不同。
应根据需要选择Modbus保持寄存器区域的大小。
包含 Modbus RTU 从站指令库的项目编译、下载到CPU中后,在编程计算机(PG/PC)上运行一些 Modbus 测试软件可以检验S7-200的Modbus RTU通信是否正常,这对查找故障点很有用。
测试软件通过计算机串口(RS-232)和PC/PPI电缆连接CPU。
如果必要,须将PC/PPI电缆设置在自由口通信方式。
可到一些软件下载网站寻找类似软件,如 ModScan32 等。
一个 Modbus RTU 通信从站例程Modbus RTU 从站地址与S7-200的地址对应Modbus地址总是以00001、30004之类的形式出现。
S7-200内部的数据存储区与Modbus的0、1、3、4共4类地址的对应关系如下:其中T为S7-200中的缓冲区起始地址,即 HoldStart。
如果已知S7-200中的V存储区地址,推算Modbus地址的公式如下:Modbus地址 = 40000 + (T/2+1) ; T为偶数Modbus RTU 从站指令库支持的 Modbus 功能码Modbus RTU 从站指令库支持特定的 Modbus 功能。
访问使用此指令库的主站必须遵循这个指令库的要求。
表 2. Modbus RTU 从站功能码常问问题Modbus 从站的网络地址与 S7-200 的 CPU 网络地址有什么关系?没有关系。
支持网络通信的通信协议必须有其自己的网络寻址规定。
Modbus 从站的地址只是它在 Modbus 网络上的地址,而通常所说的 S7-200 CPU 地址是CPU 在西门子的 PPI 网络上的站地址。
S7-200 CPU 的大部分通信功能都通过PPI 网络完成,例如编程、网络读写通信等。
如何理解 Modbus 地址与功能码的区别?Modbus 地址与 Modbus 的功能码是两个层次的概念。
根据 Modbus 通信协议,Modbus 数据的地址使用 00xxx、10xxx、30xxx 和 40xxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。
在使用S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。
有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何指定 Modbus 站的地址,需要读写数据类型、长度等等。
数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓“功能码”,如功能 1 指定读取单个/多个数字量输出点的值。
支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。
Modbus 地址所访问的数据,是通过各种“功能”读写而来。
功能码是 Modbus 地址的底层。
如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。
Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程通信监控。
如果通信口都已经被占用,可以考虑:•加一个通信模块(如EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口•中止自由口模式,可以将CPU 上的模式开关从RUN 拨到STOP;或者保持处于RUN 状态,用程序停止指令库的Modbus 模式(参见指令库应用)为何有些 HMI 软件使用 Modbus RTU 读取S7-200中的实数会出现错误?有些HMI软件使用Modbus RTU通信协议时,处理存储在数据保持寄存器中的实数(浮点数)的方式与西门子的实数保存格式不同。
西门子的PLC遵循“高字节低地址、低字节高地址”的规律。
Modbus RTU的保持寄存器总是以“字(双字节)”为单位,而一个实数需要4个字节(双字)表示。
HMI软件在处理时可能会把保持寄存器的两个“字”互换位置,造成不能识别以西门子格式表示的实数。
如果HMI软件一方无法处理这种实数,则可在S7-200 CPU中编程将存入数据缓冲区(保持寄存器区)的实数的高字和低字互换。
为何有的HMI软件用Modbus RTU可以读取作为从站的S7-200的内容,但不能写入?可能此软件使用了Modbus功能15(写多个离散量)或类似功能(功能 16)。
S7-200从站协议遵守“以整字节地址边界(如Q0.0、Q2.0)开始、以8的整数倍为位个数”的规约。
如果HMI软件未严格执行此规律就可能发生写入错误的情况。
S7-200是否支持 Modbus ASCII 模式?S7-200可以支持上述模式,但是没有现成的指令库,需要用户自己编程。
项目编译后为何出现很多错误?使用指令库时,若编译后出现很多错误,一般是因为未指定库指令数据存储区。
请参考相关条目。
S7-200 CPU的Port1是否可以支持Modbus RTU协议?可以。
用户可以自己编程实现。
在S7-200的“Tips and Tricks”帮助文档中,Tip041是ModbusRTU从站程序,用户可以参考。
S7-200是否可以组成Modbus RTU通信网络?如何组网?S7-200可以组成RS-485基础上的Modbus RTU网络。
如果通信对象是不同标准的通信口,可能还需要转换。
参见:RS-485网络组成。