S7-1200 Modbus RTU通讯及V3版指令Funktion

kostenlosKostenloses technisches Material

Dieser Inhalt ist direkt lesbar und eignet sich für das Grundlagenlernen und die Suche.

S7-1200 Modbus RTU通讯及V3版指令Funktion缩略图
🌐 Diese Seite ist noch nicht auf Deutsch verfügbar. Die chinesische Version wird angezeigt. Zurück zur chinesischen Seite.
本文目录
  1. 1. (一)概述
  2. 2. (二)Modbus RTU指令版本与限制
  3. 3. (1)博途中的 S7-1200 Modbus RTU指令
  4. 4. (三)Häufige Fragen
  5. 5. (一)Modbus RTU指令概述
  6. 6. (二)Modbus RTU指令实例环境介绍
  7. 7. (三)实例之AusrüstungStrukturen
  8. 8. 1、StrukturenCM1241 RS422/485模块
  9. 9. 2、StrukturenET200 SP CM PtP 模块
  10. 10. (四)实例之软件编程
  11. 11. (2)插入”Pull or plug of modules” 中断OB83
  12. 12. (3)插入”Rack or Station failure” 中断OB86
  13. 13. (五)Häufige Fragen

(一)概述

Modbus具有两种串行传输模式:Unterteilung别为ASCII和RTU。Modbus是一种单Hauptstation的主从Kommunikation模式,Modbus网络上只能有一个HauptstationExistenz,Hauptstation在Modbus网络上没有Adresse,每个Von der Station必须有唯一的Adresse,Von der Station的Adresse范围为0 – 247,Von denen0为RundfunkAdresse,Von der Station的实际Adresse范围为1-247。Modbus RTUKommunikation以主从的方式进行Daten传输,在传输的过程中Modbus RTUHauptstation是主动方,即HauptstationSenden SieDatenBitteMeldungzuVon der Station,Modbus RTUVon der StationZurück zur AntwortMeldung。S7-1200以下模块支持 Modbus RTUKommunikation:

Kommunikation模块/Kommunikation板订货Nr.
CM1241 RS2326ES7241-1AH32-0XB0
CM1241 RS422/4856ES7241-1CH32-0XB0
CB 1241 RS4856ES7241-1CH30-1XB0

注意:

(1)使用Kommunikation模块CM 1241 RS232作为Modbus RTUHauptstation时,只能与一个Von der Station通讯。
(2)使用Kommunikation模块CM 1241 RS485作为Modbus RTUHauptstation时,则允许建立最多与 32 个Von der Station的通讯。

(3)使用Kommunikation板CB 1241 RS485时,CPU 固件必须为 V2.0 或更高版本,且使用软件必须为STEP 7 Basic V11 或STEP 7 Professional V11 以上更高版本。

(二)Modbus RTU指令版本与限制

随着博途软件和 S7-1200 CPU 固件的不断更新,S7-1200 Modbus RTU 指令也出现了不同的版本。用户需要根据使用的软件和硬件,Richtig.Auswahl使用符合要求的 S7-1200 Modbus RTU 指令来实现 Modbus RTU Kommunikation,其软件和硬件要求和指令版本说明如下。

(1)博途中的 S7-1200 Modbus RTU指令

博途中提供了2个版本的 Modbus RTU指令。如下图 1 所示:

  • 早期版本的 Modbus RTU 指令(图1. 中 MODBUS (V2.2))仅可通过 CM1241 Kommunikation模块或 CB1241 Kommunikation板进行 Modbus RTU Kommunikation。
  • 新版本的 Modbus RTU 指令(图1. 中 MODBUS(RTU) V3.0)扩展了 Modbus RTU 的Funktion,该指令除了支持 CM1241 Kommunikation模块、CB1241 Kommunikation板,还支持 PROFINET 或 PROFIBUS Verteilung I/O 机架上的 PTP Kommunikation模块实现 Modbus RTU Kommunikation。

(2)新版本 Modbus RTU 指令的使用限制条件
新版本 Modbus RTU 指令通过CM1241Kommunikation模块或CB1241Kommunikation板进行Modbus RTUKommunikation时,需要满足如下条件:
a. S7-1200 CPU 的固件版本不能低于V4.1
b. CM1241Kommunikation模块 V2.1 以上或 CB1241

S7-1200 Modbus RTU通讯及V3版指令Funktion插图

图1. 两个版本 Modbus RTU 指令

(三)Häufige Fragen

(1)S7-1200 是否支持 Modbus ASCII Kommunikation模式?

西门子不提供支持上述Kommunikation模式的的现成指令,需要用户自己用自由口模式编程。

(2)Modbus RTU指令V1和V2两个版本有什么区别?

Modbus RTU指令版本 V2 将Parameter “REQ” 和 “DONE” 添加zu“MB_COMM_LOAD”指令。而且,“MB_MASTER(图片)”和“MB_SLAVE ”指令的“MB_ADDR ”Parameter现在允许一个 UInt 值以进行扩展寻址。

(3)同一CPU程序中是否可以同时使用V1和V2两个不同版本的Modbus RTU指令?

不能在同一CPU 程序中同时使用V1(V1.x)和V2(V2.y)指令版本。用户程序的 Modbus 指令必须具有相同的主版本Nr.;主版本组内的各个指令可具有不同的次版本Nr.。

(4)S7-1200 Kommunikation模块CM1241是否可作为Modbus RTUHauptstation或作为Modbus RTUVon der Station?

对S7-1200 Kommunikation模块CM1241Strukturen并编程调用“MB_COMM_LOAD”指令,可将其设置为Modbus RTUKommunikation模式。通过编程调用“MB_MASTER”指令,S7-1200 Kommunikation模块CM1241可作为Modbus RTUHauptstation,或调用“MB_SLAVE”指令,S7-1200 Kommunikation模块CM1241可作为Modbus RTUVon der Station。

注意:无论S7-1200 Kommunikation模块CM1241作为Modbus RTUHauptstation还是Von der Station,都需要调用“MB_COMM_LOAD”指令进行编程。

(5)S7-1200 CM1241/CB1241 Modbus RTU Kommunikation是否支持两位Stoppen Sie Platz?

支持。

注意:S7-1200 CM1241/CB1241属性里可以设置Stoppen Sie Platz, 但是该模块用于 Modbus Kommunikation时,此设置的Stoppen Sie PlatzUnwirksam, 需要在 Modbus_Commload 指令的背景 DB 里 Static 修改 STOP_BITSStoppen Sie PlatzZahlenwert为 2。如下图 2-3所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图1

图2. CM1241 配置Stoppen Sie PlatzParameter

Modbus_Commload 指令的背景 DB 里 Static 修改 STOP_BITSStoppen Sie PlatzZahlenwert为 2(默认值=1)

S7-1200 Modbus RTU通讯及V3版指令Funktion插图2

图3. 修改 Modbus RTU KommunikationStoppen Sie Platz

Die二部Unterteilung:V3版指令Funktion

(一)Modbus RTU指令概述

博途V13 SP1版本软件中提供了2个版本的Modbus RTU指令:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图3

图1. 两个版本Modbus RTU指令

(1)早期版本的Modbus RTU指令(图1. 中 MODBUS (V2.2))仅可通过CM1241Kommunikation模块或CB1241Kommunikation板进行Modbus RTUKommunikation。
(2)新版本的 Modbus RTU指令(图1. 中 MODBUS(RTU) V3.0)扩展了Modbus RTU的Funktion,该指令除了支持CM1241Kommunikation模块、CB1241Kommunikation板,还支持 PROFINET 或 PROFIBUS Verteilung I/O 机架上的PTPKommunikation模块实现Modbus RTUKommunikation。

(3)新版本 Modbus RTU指令所支持的PTP模块如下图2所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图4

图2. 新版本 Modbus RTU指令所支持的PTP模块

(二)Modbus RTU指令实例环境介绍

新版本Modbus RTU指令中包含Modbus RTU Hauptstation指令和Von der Station指令。本文以 CPU1217C+CM1241 RS422/485+ET200SP CM PTP 模块为例,介绍新版本 Modbus RTU 指令主从Kommunikation的编程步骤。Von denenCPU 机架CM1241 RS422/485作为Modbus RTUVon der Station,Verteilung机架ET200SP 中 CMPTP 模块作为Modbus RTUHauptstation。

1、网络结构图如下:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图5

图3. Modubus RTU 网络Kommunikation结构图

2、本项目中使用zu的硬件和软件如下:

(1)硬件:
① CPU1217C (订货Nr.:6ES7 217-1AG40-0XB0),固件版本V4.1.3
② CM1241 RS422/485模块 (订货Nr.:6ES7 241-1CH32-0XB0),固件版本V2.1
③ 24V 电源PS307(订货Nr.:6ES7307-1KA02-0AA0)
④ ET200 SP IM155-6PN HF(订货Nr.:6ES7155-6AU00-0CN0)
⑤ CM PTP模块(订货Nr.:6ES7137-6AA00-0BA0)

(2)软件:
① 博途SP1 UP 9

(三)实例之AusrüstungStrukturen

1、StrukturenCM1241 RS422/485模块

(1)Öffnen.Ausrüstung视图,添加S7-1200CPU,并在硬件目录里找zu“Kommunikation模块”→“点zu点”→“CM1241(RS422/485)”,拖拽此模块至CPU左侧即可,如下图4所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图6

图4. 添加 CM 1241 RS422/485模块

注意:固件版本>=V2.1 的CM 1241 RS422/485模块,才支持新版本Modbus RTU指令。

(2)接下来,在“Ausrüstung视图”中用鼠标选中CM1241(RS422/485)模块,在“属性”→“端口Strukturen”中配置此模块硬件SchnittstelleParameter,本例以传输率=9.6Kbps,奇Zufällige Prüfungen=无奇Zufällige Prüfungen,Datenplatz=8位Charaktere,Stoppen Sie Platz=1为例。如CM 1241 端口Strukturen设置如下图5所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图7

图5. CM1241 RS422/485 模块端口Strukturen

(3)最后在“硬件标识符”里Bestätigen一下硬件标识符为269(该Parameter在程序编程中会被使用),如下图6所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图8

图6 硬件标识符

(4)另外,S7-1200 还提供了Das System和时钟存储器Funktion,为了便于后续指令,建议使能该Funktion。在CPU “属性”→“常规”→“Das System和时钟存储器”使能Das System和时钟存储器Funktion,如图7所示。

S7-1200 Modbus RTU通讯及V3版指令Funktion插图9

图7. Das System和时钟存储器Funktion

2、StrukturenET200 SP CM PtP 模块

(1)插入一个ET200SPVerteilung站点,Öffnen.网络视图并拖入一个ET200SP站点,并将其Unterteilung配给相应的IO Der Controller(本例CPU1217C 为 IO Der Controller),如图8所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图10

图8. 插入ET200SP站点

(2)StrukturenET200SP 站点,在ET200SP的”Ausrüstung视图”环境下,为ET200SP 站点添加信Nr.、Kommunikation模块和Der Server模块,在本例中只添加了CM PTP模块和Der Server模块。在ET200SP”Ausrüstung视图”中用鼠标选中CM PTP,在“属性”→“常规”→“Schnittstelle”→“Operationen模式”中配置此模块硬件SchnittstelleParameter,本例设定“指定工作模式”:”半双工(RS485)2线制Operationen”;”Empfang线路的初始Status”:”无”。如下图9所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图11

图9. CM PTP Operationen模式

注意:ET200SP站点中,Der Server模块是必须Strukturen的。Der Server模块随Schnittstelle模块一起采购,无需单独购买。ET200SPSchnittstelle模块需要为其Unterteilung配IPAdresse和Device Name, 有关ET200 SP VerteilungIO Strukturen详细步骤,请参考《ET200 SP 使用Schneller Eintritt》,本例不再描述Profinet IOKommunikation的Related设置与步骤。《ET200 SP 使用Schneller Eintritt》Download链接:

https://support.industry.siemens.com/cs/cn/zh/view/78304711

(3)接下来,在“属性”→“常规”→“Schnittstelle”→“端口Strukturen”中配置此模块端口StrukturenParameter,本例设定”Vereinbarung”:”Freeport/Modbus”;”端口Parameter”设置:传输率=9.6Kbps,奇Zufällige Prüfungen=无奇Zufällige Prüfungen,Datenplatz=8位Charaktere,Stoppen Sie Platz=1为例。端口Strukturen设置如下图10所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图12

图10. CM PTP 端口Strukturen

(4)最后需要在“硬件标识符”里Bestätigen一下CM PTP 模块硬件标识符,该Parameter在程序编程中会被使用。

(四)实例之软件编程

1、Modbus RTU Hauptstation编程

Modbus RTUHauptstation编程需要调用Modbus_Comm_Load 指令和Modbus_Master 指令,Von denenModbus_Comm_Load 指令通过 Modbus RTU Vereinbarung对Kommunikation模块进行Strukturen,Modbus_Master 指令可通过由 Modbus_Comm_Load 指令Strukturen的端口作为 Modbus Hauptstation进行Kommunikation, Modbus_Comm_Load 指令的 MB_DB Parameter必须Verbindungzu Modbus_Master 指令的(静态)MB_DB Parameter。本例中Verteilung机架ET200SP 中 CM PTP 模块作为Modbus RTUHauptstation,其Related编程步骤如下:

(1)OB1 中插入一个FC函数,并在函数中拖入Modbus_Comm_Load 指令和Modbus_Master 指令。如图11所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图13

图11. 拖入Modbus RTU Hauptstation指令

Modbus_Comm_Load指令各Parameter意义如下表1所示:

引脚说明
REQAufstieg触发
PORTKommunikation端口的硬件标识符
BAUDPorter RateAuswahl:3600,6000,12000,2400,4800,9600,19200,38400,57600,76800,115200
PARITY奇偶检验Auswahl:0-无;1-Seltsame Tests;2-Zufällige Prüfungen
FLOW_CTRL流控制Auswahl:0-(默认值)无流控制
RTS_ON_DLYRTS延时Auswahl:0-(默认值)
RTS_OFF_DLYRTS关断延时Auswahl:0-(默认值)
RESP_TOAntwort超时:默认值 = 1000 ms。MB_MASTER 允许用于Von der StationAntwort的Zeit(以毫秒为单位)。
MB_DB对 Modbus_Master 或 Modbus_Slave 指令的背景Daten块的引用。
MB_DB Parameter必须与 Modbus_Master 或 Modbus_Slave 指令中的静态变QuantitätMB_DB Parameter相连。
DONE如果上一个Bitteabgeschlossen.并且没有Fehler.,DONE 位将变为 TRUE 并保持一个周期。
ERROR如果上一个Bitteabgeschlossen.出错,则 ERROR 位将变为 TRUE 并保持一个周期。STATUS Parameter中的Fehler.代码仅在 ERROR = TRUE 的周期内Wirksam。
STATUS端口StrukturenFehler.代码,请参考TIA 软件在线帮助或S7-1200 Das System手册。

表1 MB_COMM_LOAD指令Parameter意义

Modbus_Master指令各Parameter意义如下表2所示:

引脚说明
EN使能端
REQTRUE = Bitte向 Modbus Von der StationSenden SieDaten ,建议采用Aufstieg触发
MB_ADDRModbus RTUvon der Station Adresse。默认Adresse范围:0至247;扩展Adresse范围:0至65535。值0被保留用于将消息Rundfunkzu所有ModbusVon der Station。
MODE模式Auswahl:指定BitteTypus(Lesen或写入)。
DATA_ADDRVon der Station中的Ausgang Adresse:指定ModbusVon der Station中将供访问的Daten的Ausgang Adresse。
DATA_LENDatenLänge:指定要在该Bitte中访问的位数或字数。
DATA_PTRDaten指针:指向要进行Daten写入或DatenLesen的标记或Daten块Adresse。
DONEabgeschlossen.位:上一Bitte已abgeschlossen.且没有出错后,DONE 位将保持为 TRUE 一个扫描周期Zeit。
BUSYFALSE – Modbus_Master 无激活Befehl:
TRUE – Modbus_Master Befehl执行中
ERROR对 Modbus_Master 或 Modbus_Slave 指令的背景Daten块的引用。
MB_DB Parameter必须与 Modbus_Master 或 Modbus_Slave 指令中的静态变QuantitätMB_DB Parameter相连。
STATUS如果上一个Bitteabgeschlossen.并且没有Fehler.,DONE 位将变为 TRUE 并保持一个周期。
ERROR如果上一个Bitteabgeschlossen.出错,则 ERROR 位将变为 TRUE 并保持一个周期。STATUS Parameter中的Fehler.代码仅在 ERROR = TRUE 的周期内Wirksam。
STATUSFehler.代码

表2 Modbus_Master指令Parameter意义

注意:
①Modbus_Comm_Load指令不建议在启动组织块OB100中调用,建议在OB1中调用。Modbus_Comm_Load指令在OB1中调用时,其输入位“REQ”需使用Aufstieg触发,本例中该输入位采用 “FirstScan” Das System存储器位。
②Modbus_Comm_Load指令背景Daten块中的静态变Quantität“MODE”用于描述PTP模块的工作模式,Wirksam的工作模式包括:

  • 0 = 全双工 (RS232)
  • 1 = 全双工 (RS422) 四线制模式(点对点)
  • 2 = 全全双工 (RS 422) 四线制模式(多点Hauptstation,CM PtP (ET 200SP))
  • 3 = 全全双工 (RS 422) 四线制模式(多点Von der Station,CM PtP (ET 200SP))
  • 4 = 半双工 (RS485) 二线制模式

该静态变Quantität“MODE”默认Daten为0(RS232 全双工模式),需要根据CM PTP模块实际Strukturen修改该Zahlenwert,本例中CM PTP模块工作在RS485半双工模式需要将该Zahlenwert修改为4,如图12所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图14

图12. Modbus_Comm_Load背景Daten块静态变Quantität“MODE”修改为

③Modbus_Master指令的“DATA_PTR”Parameter用于指向要进行Daten写入或DatenLesen的Datenzone域Adresse,该Datenzone域支持优化访问的Daten块或者非优化(标准的)Daten块,建议采用非优化访问的Daten块。
本例中使用的Datenzone为非优化访问的Daten块,在Daten块的属性中Absage“优化的块访问”即可将Daten块修改为非优化访问的Daten块(鼠标右键Daten块,Auswahl“属性”,Absage“优化的块访问”),如图13所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图15

图13. 设置Daten块为非优化访问

当Modbus_Master指令的“DATA_PTR”指向非优化访问的Daten块时,该输入Parameter需要使用指针方式填写如P#DB3.DBX0.0 WORD 5 方式填写。
④当Modbus RTU网络中Existenz多个modbus RTUVon der Station或一个modbus RTUVon der Station同时需要读Operationen和写Operationen,则需要调用多个Modbus_Master指令,Modbus_Master指令之间需要采用轮询方式调用。
下图14. 用于描述两个Modbus_Master指令轮询调用的方式。

S7-1200 Modbus RTU通讯及V3版指令Funktion插图16

图14.Modbus_Master轮询调用方式

(2)插入”Pull or plug of modules” 中断OB83

本例中Modbus RTUHauptstation模块安装在VerteilungIO站点上,因此程序中需要考虑VerteilungIO站点故障、CM PTP 模块插拔模块等故障。VerteilungIO站点中插出、拔入模块时,OperationenDas System都会调用一次OB83。通过OB83Schnittstelle区的输入变Quantität“16#Event_Class”判断故障的模块和Typus:EreignisseTypus16#39表示模块被拔出,EreignisseTypus16#38表示模块被插入。CM PTP 模块被重新插入的时候,需要在中断OB83中调用Modbus_Comm_Load 指令对Kommunikation模块进行重新Strukturen,如图15所示。

S7-1200 Modbus RTU通讯及V3版指令Funktion插图17

图15. OB83中再次调用Modbus_Comm_Load 指令

注意:
①OB83 中调用Modbus_Comm_Load指令的背景Daten块需要与OB1中调用的Modbus_Comm_Load指令的背景Daten块相同。
②CM PTP模块的硬件标识符也可以在”PLC变Quantität”—>”Das SystemKonstante”中查询,如图16所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图18

图16. Das System常Quantität

(3)插入”Rack or Station failure” 中断OB86

VerteilungIO站点故障和恢复时,OperationenDas System都会调用一次OB86。通过OB86Schnittstelle区的输入变Quantität“16#Event_Class”判断故障的模块和Typus:EreignisseTypus16#39表示站点故障,EreignisseTypus16#38表示站点恢复。CM PTP 模块所在的IO站点恢复时,需要在中断OB86中调用Modbus_Comm_Load 指令对Kommunikation模块进行重新Strukturen,如图17所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图19

图17. OB86中调用Modbus_Comm_Load 指令

注意:
①OB86 中调用Modbus_Comm_Load指令的背景Daten块需要与OB1中调用的Modbus_Comm_Load指令的背景Daten块相同。
②VerteilungIO 站点的硬件标识符也可以在”PLC变Quantität”—>”Das SystemKonstante”中查询。

2、Modbus RTU Von der Station编程

Modbus RTUVon der Station编程需要调用Modbus_Comm_Load 指令和Modbus_Slave 指令,Von denenModbus_Comm_Load 指令通过 Modbus RTU Vereinbarung对Kommunikation模块进行Strukturen,Modbus_Slave 指令可通过由 Modbus_Comm_Load 指令Strukturen的端口作为 Modbus Von der Station进行Kommunikation, Modbus_Comm_Load 指令的 MB_DB Parameter必须Verbindungzu Modbus_Slaver 指令的(静态)MB_DB Parameter。本例中CPU 机架CM1241 RS422/485作为Modbus RTUVon der Station,其Related编程步骤如下:

(1)OB1 中插入一个FC函数,并在函数中拖入Modbus_Comm_Load 指令和Modbus_Slave 指令。如图18所示:

S7-1200 Modbus RTU通讯及V3版指令Funktion插图20

图18. 拖入Modbus RTU Von der Station指令

Modbus_Slave指令各Parameter意义如下表3所示:

引脚说明
MB_ADDRModbus Von der Station的标准寻址:
标准寻址范围(1 zu 247)
扩展寻址范围(0 zu 65535)
MB_HOLD_REGDaten指针,指向Modbus 保持Register.的Adresse, Modbus 保持Register.可以为M存储区或DBDatenzone。
如果Modbus 保持Register.为DBDatenzone,则DBDatenzone支持优化访问的Daten块或非优化访问的Daten块,建议采用非优化访问的Daten块。
NDR可用的新Daten:FALSE – 无新DatenTRUE – 表示新Daten已由 Modbus Hauptstation写入
如果上一个Bitteabgeschlossen.并且没有Fehler.,NDR 位将变为 TRUE 并保持一个周期。
DRDaten lesen:FALSE – 无新DatenTRUE –表示该指令已将 Modbus HauptstationEmpfangzu的Daten存储在目标区域中。
如果上一个Bitteabgeschlossen.并且没有Fehler.,DR 位将变为 TRUE 并保持一个周期。
ERROR如果上一个Bitteabgeschlossen.出错,则 ERROR 位将变为 TRUE 并保持一个周期。如果执行因Fehler.而终止,则 STATUS Parameter中的Fehler.代码仅在 ERROR = TRUE 的周期内Wirksam。
STATUSFehler.代码

表3 Modbus_Slave指令Parameter意义

注意:
①Modbus_Comm_Load指令不建议在启动组织块OB100中调用,建议在OB1中调用。Modbus_Comm_Load指令在OB1中调用时,其输入位“REQ”需使用Aufstieg触发,本例中该输入位采用 “FirstScan” Das System存储器位。
②Modbus_Comm_Load指令背景Daten块中的静态变Quantität“MODE”用于描述PTP模块的工作模式,Wirksam的工作模式包括:

  • 0 = 全双工 (RS232)
  • 1 = 全双工 (RS422) 四线制模式(点对点)
  • 2 = 全全双工 (RS 422) 四线制模式(多点Hauptstation,CM PtP (ET 200SP))
  • 3 = 全全双工 (RS 422) 四线制模式(多点Von der Station,CM PtP (ET 200SP))
  • 4 = 半双工 (RS485) 二线制模式

该静态变Quantität“MODE”默认Daten为0(RS232 全双工模式),需要根据CM1241 RS422/485模块实际Strukturen修改该Zahlenwert,本例中CM1241 RS422/485模块工作在RS485半双工模式需要将该Zahlenwert修改为4,如何修改“MODE”静态变Quantität见图12所示。

③Modbus_Slave指令的“MB_HOLD_REG”用于指向Modbus 保持Register.的Datenzone域Adresse,该Datenzone域支持优化访问的Daten块或者非优化(标准的)Daten块,建议采用非优化访问的Daten块。本例中使用的Datenzone为非优化访问的Daten块,固该输入Parameter需要使用指针方式填写如P#DB6.DBX0.0 WORD 100 方式填写。如何在Daten块的属性中Absage“优化的块访问”,见图13所示。将程序DownloadzuPLC中,并使用Profibus DPKommunikation电缆将CM1241 RS422/485与CM PTPDie Serie模块Verbindung起来,即可测试Modbus RTUKommunikation了。

(五)Häufige Fragen

1. 新版本 Modbus RTU指令的使用是否Existenz些限制条件?
新版本 Modbus RTU指令通过CM1241Kommunikation模块或CB1241Kommunikation板进行Modbus RTUKommunikation时,需要满足如下条件:

a. S7-1200 CPU 的固件版本不能低于V4.1;
b. CM1241Kommunikation模块或CB1241Kommunikation板的固件不能低于V2.1。

S7-1200 V4.0 固件CPU可以通过固件更新zuV4.1版本,V2.0固件的CM1241Kommunikation模块也可以通过固件更新的方式更新zuV2.1版本。Related固件更新的方法请参考 S7-1200 固件更新 。

2 .Modbus_Comm_Load指令背景Daten块中的静态变Quantität“MODE”的作用Was ist das??为什么一般项目中,都需要对该变Quantität进行修改?
新版本的 Modbus RTU指令扩展了Modbus RTU的Funktion,该指令除了支持CM1241Kommunikation模块、CB1241Kommunikation板还支持 PROFINET 或 PROFIBUS Verteilung I/O 机架上的PTPKommunikation模块实现Modbus RTUKommunikation。而Verteilung I/O 机架上的PTPKommunikation模块可以支持多种工作模式,以ET200SP CM PtP模块(订货Nr.:6ES7137-6AA00-0BA0)为例,其可以支持RS232、RS485以及RS422等多种工作模式。Modbus_Comm_Load指令背景Daten块中的静态变Quantität“MODE”则用于定义PTP模块的工作模式。“MODE”的默认Zahlenwert为0,代表“全双工 (RS232)”工作模式,实际项目Strukturen中则需要根据实际工作模式对该变Quantität进行修改。

3. Modbus_Comm_Load指令能否在启动组织块OB100中调用?
Modbus_Comm_Load指令不建议在启动组织块OB100中调用。新版本的Modbus RTU指令扩展了Modbus RTU的Funktion,该指令支持 PROFINET 或 PROFIBUS Verteilung I/O 机架上的PtPKommunikation模块实现Modbus RTUKommunikation。OperationenDas System需要调用LesenDaten aufzeichnen和写入Daten aufzeichnen等指令来实现与VerteilungI/O机架上PtP模块的Modbus RTUKommunikation。LesenDaten aufzeichnen和写入Daten aufzeichnen指令为Asynchron读写指令,指令的执行需要N个扫描周期,所以不建议Modbus_Comm_Load指令在启动组织块OB100中调用。

4. 如何查询Modbus RTUKommunikationFehler.时的Fehler.代码?
以Modbus_Master指令为例,当Kommunikation出现Fehler.时,Modbus_Master指令的“ERROR”输出位将变为 TRUE 但是只保持一个扫描周期,所以通过TIA 软件程序监控时无法查询zuFehler.。Modbus_Master指令“STATUS” Parameter中的Fehler.代码仅在“ERROR” = TRUE 的扫描周期内Wirksam,为了获取了Modbus RTUKommunikationFehler.的Fehler.代码我们可以采用下图19. 方式编程。

S7-1200 Modbus RTU通讯及V3版指令Funktion插图21

图19. 获取STATUS

Techniken术语(共 9 个)—— Klick auf展开
Modbus RTU基于串行链路的ModbusVereinbarung,使用BinärsystemCodierung和CRC-Test
Modbus ASCII使用ASCIICharaktere传输的ModbusVereinbarung,以冒Nr.开头、CR/LF结尾
RS485工业常用的schlechtUnterteilung串行Kommunikation标准,支持多点Kommunikation
RS232点对点串行Kommunikation标准,常用于短距离AusrüstungKommunikation
Register.Modbus Register.存储Daten单元,Unterteilung线圈/离散输入/保持/输入Register.四类
PLC可编程逻辑Der Controller,Industrielle Automatisierung控制的核心Ausrüstung
Porter Rate串行Kommunikation每秒传输符Nr.数,Modbus RTU常用9600/19200
Die SerieBerechnung机与外部Ausrüstung进行串行Kommunikation的物理Schnittstelle
保持Register.Modbus 16位可读Schreiben von Daten,Adresse从40001开始
来源/Werkzeuge信息 —— Klick auf展开
来源 Modbus Chinesisches Netzwerk(modbus.cn) —— Inländisch führend.ModbusKommunikationsprotokoll Technologie Gemeinschaft Klassifizierung Das industrielle Internet der Dinge 字数 9909 字 · 阅读约 25 Unterteilung钟 更新 2023-12-15 永久链接 https://www.modbus.cn/26314.html
Empfohlene Werkzeuge: Modbus Debugger-Assistent WeChat-Applet
Modbus Chinesisches Netzwerk官方推出的Modbus Debugging-Tools,支持 Modbus RTU/TCP 实时KommunikationTests、Register.读写、线圈控制、Daten监控和MeldungUnterteilung析。 keine Installation erforderlich,Mikro-Suche「Modbus DebuggingAssistenten.」Benutzt werden kann.。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
Relevante Etiketten
Sollte man diese Informationen für ein echtes Projekt verwenden?

Gehen Sie zum Tool Center, um Nachrichten zu analysieren, CRC-Prüfungen und Geräte-Debugging zu erledigen, oder senden Sie Anforderungen für Auswahl - und Zugangsvorschläge.

Ingenieur Mitglied

Verwandeln Sie diesen Artikel in ein umsetzbares Debuggermaterial

Erweiterte Nachrichtenanalyse, Paket-Downloads, Codebeispiele, Engineering-Szenarien und Priority-Technischer Support sind für die Real-Projekt - Bereitstellung möglich.

Unbegrenzte Werkzeuge
Datenpaket und Codepaket
Vollständige Engineering Case-Basis
Vorrangiger Zugang zum technischen Support

Antwort veröffentlichen

Ihre E-Mail - Adresse wird nicht öffentlich gemacht. Erforderliche Elemente wurden verwendet * markiert.