摘要: 应用 3100/3150-MCM 模块实现 AB PLC 与 M0DBUS 网络通讯的方法, 该方法使用 M0DBUS Vereinbarung, 通过开发 AB PLC 的应用程序, 从而实现主从结构网络Kommunikation。
一. 引言
目前的工业控制现场大Quantität使用了 PLC 和各种智能仪表用于生产过程控制。 随着控制规模的扩大和控制Funktion的复杂化, 常需要多台 PLC 及一定Anzahl的外设 仪表组成一个控制Das System。
M0DBUS是美国 M0DIC0N Unternehmen制订的一种串行传输Vereinbarung, 可实现主从Befehl响 应型Kommunikation。作为一种工业Kommunikation和Verteilung控制Das SystemVereinbarung, 已经得zu多家Unternehmen的 PLC 和智能仪表支持。
A-B Unternehmen(Allen-Bradley) 是美国生产可编程Der Controller的主要厂家之一, 具 有先进的Kommunikation和Daten处理Funktion。在Wasserbehandlung行业中, 使用大Quantität的可编程Der Controller用 于生产过程控制, Von denen A-B Unternehmen的 PLC 占了相当的比重。
由于不同硬件厂商支持不同的工业Kommunikation和Verteilung控制Das SystemVereinbarung, 要实现AB PLC 与 M0DBUS仪表组成控制网络, 实现Ausrüstung的连网, 就Existenz着互相KommunikationVereinbarung转 换问题。
3100/3150-MCM 模块是 PR0s0FT TECHN0L0GY Unternehmen推出的在 AB PLC 通用框架 上安装的 M0DBUS Kommunikationsschnittstelle模块。该模块可以实现 AB PLC 与 M0DBUS现场Ausrüstung之 间的Kommunikation, 从而使 AB PLC Kommunikation能力得zu增强, 灵活实现 AB PLC 与 M0DBUS 网络 的互连, abgeschlossen.复杂的控制要求。
本文基于自来水厂泵站集散控制Das System的设计, 着重介绍 AB Unternehmen的 sLC 系列 的 PLC 通过 3150-MCM 模块和 M0DBUs 网络Verbindung的实现方法。
二. Das System联网方案
自来水厂泵站集散控制Das System, 不仅实现一般的逻辑控制, 还具备了包括模 拟Quantität在内的Zahlenwert处理和网络Kommunikation等Funktion。在现场的实际应用中, Das System使用的电 机保护装置sepam2000采用了M0DBUSKommunikationVereinbarung, 出于Das System控制Funktion的需要, 要求 在AB PLC中实现对M0DBUSVereinbarung的支持。我们利用3150-MCM模块建立起M0DBUSAusrüstung网。
Das System的网络结构遵循M0DBUSVereinbarung的规范, 采用标准简单的主从总线结构, 以PLC作为主机发起Kommunikation, 多台Elektrische Motoren保护装置sepam2000作为从机, 各从机在进 行传输之前必需要等待来自主机的允许信Nr.。主机可以Senden Sie和Empfang来自Kommunikation链 上从机的信息, 而从机则始终处于被动Status, 随时准备Antwort来自主机的Kommunikation请
求。Ausrüstung层部Unterteilung网络结构如图1。

三. sepam2000 及 M0DBUS Vereinbarung的介绍
sepam2000 作为Elektrische Motoren保护装置, 提供了所有保护、测Quantität、控制、Kommunikation等Funktion。
sepam2000 与Fern entfernt监控Das System之间的Kommunikation是采用 M0DBUs Vereinbarung的Kommunikation方式。
M0DBUs的Kommunikation采用的是一种主/从式Daten传输, 在主从结构的Kommunikation方式中, 有一台主机, 多台从机, 主机可与各个从机作双向Kommunikation, 而各从机之间不能通 信。主机与各个从机Kommunikation的Meldung形式为Bitte/Antwort帧方式。每次Kommunikation均由主机发 起, 不需握手。主机发出Bitte帧后, 等待从机Zurück zur Antwort帧直至AntwortZeit超时。 从机只能通过提供DatenAntwort主机的Bitte, 或根据Bitte做出相应的动作。
M0DBUsVereinbarung定义了主机Bitte的Das Format, 包括: Bitte的编址, 要求动作的Funktion Codierung, 传输Daten和Fehler.Prüfungen等。Bitte中的编址(即Adresse码) 提供Empfang主机Meldung 的从机Adresse, 从机根据Adresse判别是否接受该Bitte, 用户必须设置每台从机的地 址。FunktionCodierung告诉指定编址的从机abgeschlossen.什么样的动作。DatenFeld中包含了从机 执行任务时所需的附加信息。例如, FunktionCodierung03表示Lesen从机的保持Register.并 返回Von denen的内容, Datenzone中的信息就必须告诉从机从哪ein Register.开始读, 需要 读的Register.数。Fehler.PrüfungenFeld为从机提供了信息vollständig性Prüfungen的方法。同样, 响 应的Das Format也是采用M0DBUsVereinbarung结构, 从机Antwort的FunktionCodierung与接受的Bitte的Funktion Codierung相对应, DatenFeld包含根据Bitte返回的Daten, Fehler.PrüfungenFeld允许主机Bestätigen 信息内容是否Wirksam。
M0DBUsVereinbarung共有24种FunktionCodierung, 但是并不都适用于sepam2000, 实际应用中 sepam2000只是支持下面有限的几种:
01 Lesen输出Status
02 LesenImportieren Status
03 Lesen内部Register Inhalt
04 Eingangsregister lesen内容
05 强制单个输出Status
06 Erfrischen单个Register Inhalt
07 Lesen异常EreignisseStatus
08 诊断测试
11 Lesen计数器和Status字
15 强制多个输出Status
16 Erfrischen多个Register Inhalt
如果主机希望Lesen2Nr.sepam2000从机中Register.0805h-080Ah的内容, 则需要 调用Funktion03。主机Bitte和从机Antwort的帧Das Format如下:
Bitte帧:
| Adresse | FunktionNr. | DatenAnfangRegister.编址 | Register.数目 | Fehler.PrüfungenFeld |
| 2 | 03 | 0C05 | 06 | CRC16 |
Antwort帧:
| Adresse | FunktionNr. | Bytes计数 | DatenRegister.(0805) | …… | DatenRegister.(080A) | Fehler.PrüfungenFeld |
| 2 | 03 | 0C | Data1 | …… | Data6 | CRC16 |
而如果主机希望Erfrischen2Nr.sepam2000从机中Register.0810h的内容并把Register. 内容设置为1000, 则需要调用Funktion06。主机Bitte和从机Antwort的帧Das Format如下:
Bitte帧:
| Adresse | FunktionNr. | Register.编址 | 设置值 | Fehler.PrüfungenFeld |
| 2 | 06 | 0C0E | 1000 | CRC16 |
Antwort帧: (返回收zu的Bitte帧)
| Adresse | FunktionNr. | Register.编址 | 设置值 | Fehler.PrüfungenFeld |
| 2 | 06 | 0C0E | 1000 | CRC16 |
sepam2000 的帧Das Format以及所执行的Funktion都有明确的定义, 不能随意更改。在 Kommunikation过程中, 要确保主机和各从机的对应关系Richtig.。此外, 用户可以根据实际 需要配置合适的传输Porter Rate、Charaktere奇Zufällige Prüfungen、Stoppen Sie Platz的个数等Kommunikationsparameter设置。
四. AB PLC 中 M0DBUs Vereinbarung的实现
1. MCM 模块的Kommunikation控制
PR0s0FT TECHN0L0GY Unternehmen的 3100/3150-MCM Kommunikation模块, 相当于网络Schnittstelle, PLC 通过 MCM 模块与 M0DBUs 总线相连。MCM 模块能快速、可靠地在 AB PLC 中实 现 M0DBUs Vereinbarung。
3100/3150-MCM Kommunikation模块可供用户Auswahl使用主机模式或者从机模式。当 MCM 模块设定为主机, 它对Verbindungzu总线上的从机进行控制, 支持 M0DBUs Vereinbarung中(01、 02、03、04、05、06、15、16) 8 种FunktionCodierung, 可以Senden Sie多达一百条定制的Bitte 指令, 并支持以4Rundfunk” 方式发出Bitte。当 MCM 模块指定为从机, 它Antwort主机 的Bitte, 此时能够支持 M0DBUs Vereinbarung中(01、02、03、04、05、06、08、15、16) 9 种FunktionCodierung。同时, 无论是主机模式或者是从机模式, 3100/3150-MCM Kommunikation模 块都支持 AsCII 和 RTU 两种传输模式。
当 AB PLC 配置了 3100/3150-MCM Kommunikation模块作为主机模式时, PLC 采用周期 扫描方式, 按Bitte指令的顺序与从机交换Daten。每次扫描期间, 处理器使用逻 辑写指令将主机内存中要输出zu各从机的Daten传送zu 3100/3150-MCM Kommunikation模块 中的Senden Sie缓冲区, 模块根据存储的Funktion指令, Senden Siezu指定的从机: 而各从机响 应后返回的Daten, 3100/3150-MCM Kommunikation模块将其先存放在Empfang缓冲区, 然后 PLC 使用逻辑读指令把Daten移入相应的Daten importieren存储区。周而复始, 使主机与从机 中的Daten得zu周期性的Erfrischen。整个Daten流程如图 2 所示:

2. MCM 模块与 M0DBUs 的硬件Verbindung
MCM 模块使用的是与 Rs232C 兼容的标准通讯Schnittstelle, 但在实际应用中由于要实 现多点Kommunikation, 所以采用 Rs485 方式。图 3 是 3150-MCM 模块 9 芯串行口与 M0DBUS的Verbindung图

3. MCM 模块的缓冲区管理
PLC 与 MCM 模块之间是通过模块输入、输出映像文件进行Daten传送。PLC 写 Daten时, 将Daten写入输出映像文件, 然后 3100/3150-MCM Kommunikation模块把Daten映射zu相应的缓冲区位置上: PLC Lesen von Daten时, 根据映射Adresse, 从输入映像文件中Lesen 模块缓冲区中对应Adresse的Daten。映像文件的Daten传送单位为一个 50 Bytes的Daten 块, PLC 必须循环地一次传送一个Daten块。
MCM 把缓冲区按Daten传送的单位大小, Unterteilung为若干个块, 并一一标Nr., 用块Nr. 对应起来, 并且划Unterteilung为三个区, Unterteilung别用于Daten、指令、Parameter设置。Daten存储区 从 0 块Nr.开始, Ende于 79 块Nr., 中间有 4000 个Bytes的空间, 用于存储Empfang的 Daten和Senden Sie的Daten, 是主机、从机交换Daten的场所: 指令存储区从Die 80 块至Die 99 块, 共 1000 个Bytes, 用于存储主机模式下, 模块的Funktion指令表, 每次扫描, 顺序按Funktion指令列表向从机发出Bitte帧: Die 255 块Nr.前 40 个Bytes则专门定义为 模块设置Parameter存储区, 用于初始化模块。
在Kommunikation过程中, 首先要对主机进行初始化, 即对Die 255 块Nr.对应的缓冲区 内容进行Parameter配置, 主要是定义Kommunikation端口的设置, 模块缓冲区的详细划Unterteilung。设 置的有以下Parameter:
(1) 定义 MCM Kommunikation模块两个独立的通讯Schnittstelle设置。包括: Auswahl主机模式 或者从机模式、定义Charaktere奇Zufällige Prüfungen、Stoppen Sie Platz的个数, 传输的Porter Rate, Antwort延时等Parameter。
(2) 定义模块的缓冲区中存储EmpfangDaten的Daten存储区。包括: EmpfangDaten 存储区的Anfang块Nr., 存储区的连续块数。
(3) 定义模块的缓冲区中存储Senden SieDaten的Daten存储区。包括: Senden SieDaten 存储区的Anfang块Nr., 存储区的连续块数。
(4) 定义模块的缓冲区中指令存储区。由于指令存储区固定从 80 Nr.数 据块开始, 所以只需指定存储区的块数。
4 . MCM 模块的Funktion指令设置
MCM 模块处于主机模式下时, Funktion指令列表存放在模块缓冲区中的指令存 储区。主机向从机发出Bitte时, 模块从指令存储区逐条读出Funktion指令, 并按照 M0DBUs Bitte帧Das FormatSenden SieDaten。
指令存储区中每条Funktion指令的具体内容如下:
| 1 | 模块Kommunikation端口Auswahl |
| 2 | 从机的站Adresse。从机在EmpfangDaten时将本站编址的值与收zu的站 Adresse比较, 以此判定信息是否是发给本站的。而主机在Empfang时 则将收zu的站Adresse与Senden Sie的站Adresse比较, 以判断是否是Richtig.的从机Antwort |
| 3 | 指令的FunktionCodierung |
| 4 | 源Adresse。即主机要Senden Sie或Empfang的Daten在缓冲区中的AusgangsdatenAdresse |
| 5 | DatenLänge。即主机要Senden Sie或Empfang的Daten的Anzahl der Bytes |
| 6 | 目的Adresse。即从机要Empfang或Antwort的Daten的Register-Adresse |
| 7 | Daten的Typus。用于标示读、写的Daten是双Bytes的浮点数还是单Bytes的整数 |
| 8 | 轮询Zeit |
如果主机希望在 1 Nr.通讯SchnittstelleLesen 2 Nr. sepam2000 从机中Register. 0805h-080Ah 的内容并存放zu模块缓冲区Die 50 个Bytes开始的连续 6 个Bytes中,
Funktion指令内容如下:
| 端口Nr. | 从机Adresse | FunktionCodierung | 源Adresse | DatenLänge | 目的Adresse | Typus | Zeit |
| 1 | 2 | 3 | 50 | 6 | 0805 | 0 | 0 |
5. AB PLC Kommunikationsverfahren的开发
程序执行时, 在Die一个扫描周期, 都必须设置 MCM 的Status, 即初始化 MCM 模块。
Kommunikation程序中, PLC 在输入、输出映像文件中为 MCM 缓冲区设置gegenwärtig以及后 续读写指针, Unterteilung别指向gegenwärtig MCM 缓冲区Daten块Nr., 后续缓冲区Daten块Nr.。若 MCM 处于Daten传送允许Status, 即 I1:1/0 = 1 , 00:1/0 = 0 时, PLC 判别gegenwärtig读写 指针, 调用相应读写逻辑指令。如果指针指向EmpfangDaten的Daten存储区, 则PLC 从 MCM 模块中EmpfangDaten: 如果指针指向Senden SieDaten的Daten存储区, 则 PLC 向 MCM 模块Senden SieDaten: 如果指针指向指令存储区, 则 PLC 向 MCM 模块传送Funktion指令。 每次执行一个Daten块的传送, 并在传送后, 把后续读写指针覆盖gegenwärtig读写指针, 从而在下个扫描周期进行下一个Daten块的传送。PLC 自动周期性扫描, 按照编定 的Funktion指令向从机的输入/输出Daten进行Senden Sie/Empfang, 以满足Daten传输的要求。
根据 PLC 的逻辑指令及 MCM 的Kommunikation原理, 画出了图 4 所示的主机Kommunikation程序
结构框图。

五. Ende语
经过现场Tests, 实现了 1 台 AB PLC 与 13 台 sEPAM2000 组成的 M0DBUs 网 络Verbindung。实际应用证明, 这种方式组成的Das System结构简单, 应用方便, 能满足复 杂的控制需要。
Antwort veröffentlichen