搜档网
当前位置:搜档网 › 西门子PLC Modbus通讯

西门子PLC Modbus通讯

西门子PLC Modbus通讯
西门子PLC Modbus通讯

1.Modbus RTU主站

1.1 Modbus RTU 主站指令库

1.2 Modbus RTU 主站功能编程

1.3 关于 Modbus RTU 主站协议及地址

1.4 Modbus RTU 主站常问问题

1.5 Modbus RTU主站例程

2.Modbus RTU从站

2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议

2.2 编程基本步骤:

2.3 Modbus RTU 从站地址与S7-200的地址对应

2.4 Modbus RTU 从站指令库支持的功能码

2.6Modbus RTU从站例程

2.7 Modbus RTU 从站常见问题

3.STEP 7-Micro/WIN 的标准指令库

3.1 分配库指令数据区

1.Modbus RTU主站

1.1 Modbus RTU 主站指令库

西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。

图 1. 西门子标准指令库(Micro/WIN V4.0 SP5)

Modbus指令库

注意

● 1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对

Port 0 和 Port 1 有效。该指令库将设置通信口工作在自由口模式下。

● 2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。

● 3. Modbus RTU 主站库对CPU的版本有要求。CPU 的版本必须为 2.00 或者 2.01(即订货号为

6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的 S7-200 CPU 不支持。

使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器。要使用 Modbus RTU 主站指令库,须遵循下列步骤:

● 1.安装西门子标准指令库

● 2.按照要求编写用户程序调用 Modubs RTU 主站指令库

1.2 Modbus RTU 主站功能编程

1. 调用 Modbus RTU 主站初始化和控制子程序

使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:

图 2. 用 SM0.0 调用 Modbus RTU 主站初始化与控制子程序

各参数意义如下:

a. EN 使能:必须保证每一扫描周期都被使能(使用 SM0.0)

b. Mode 模式:为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议

c. Baud 波特

率:

支持的通讯波特率为1200,2400,4800,9600,

19200,38400,57600,115200。

d. Parity 校验:校验方式选择

0=无校验

1=奇较验

2=偶较验

e. Timeout 超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000 毫秒(1 秒),允许设置的范围为 1 - 32767。

注意:这个值必须设置足够大以保证从站有时间响应。

f. Done 完成

位:

初始化完成,此位会自动置1。可以用该位启动

MBUS_MSG 读写操作(见例程)

g. Error 初始化错误代码(只有在 Done 位为1时有效):

0=无错误

1=校验选择非法

2=波特率选择非法

3=模式选择非法

2. 调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;图

3. 调用Modbus RTU 主站读写子程序

各参数意义如下:

a. EN 使能:同一时刻只能有一个读写功能(即 MBUS_MSG)使能

注意:建议每一个读写功能(即 MBUS_MSG)都用上一

个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有

读写指令循环进行(见例程)。

b. First 读写请

求位:

每一个新的读写请求必须使用脉冲触发

c. Slave 从站地

址:

可选择的范围 1 - 247

d. RW 从站地

址:

0 =读, 1 =写

注意:

1. 开关量输出和保持寄存器支持读和写功能

2. 开关量输入和模拟量输入只支持读功能

e. Addr 读写从站的数据地址:

选择读写的数据类型

00001 至 0xxxx - 开关量输出

10001 至 1xxxx - 开关量输入

30001 至 3xxxx - 模拟量输入

40001 至 4xxxx - 保持寄存器

f. Count 数据个

通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的最大数据量为120个字

(是指每一个 MBUS_MSG 指令)

g. DataPtr 数据指

针:

1. 如果是读指令,读回的数据放到这个数据区中

2. 如果是写指令,要写出的数据放到这个数据区中

h. Done 完成位读写功能完成位

i. Error 错误代

码:

只有在 Done 位为1时,错误代码才有效

0 =无错误

1 =响应校验错误

2 =未用

3 =接收超时(从站无响应)

4 =请求参数错误(slave address, Modbus address,

count, RW)

5 = Modbus/自由口未使能

6 = Modbus正在忙于其它请求

7 =响应错误(响应不是请求的操作)

8 =响应CRC校验和错误

-

101 =从站不支持请求的功能

102 =从站不支持数据地址

103 =从站不支持此种数据类型

104 =从站设备故障

105 =从站接受了信息,但是响应被延迟

106 =从站忙,拒绝了该信息

107 =从站拒绝了信息

108 =从站存储器奇偶错误

常见的错误:

●如果多个 MBUS_MSG 指令同时使能会造成 6 号错误

●库存储区被程序其它地方复用,有时也会造成6 号错误

●从站 delay 参数设的时间过长会造成主站 3 号错误

●从站掉电或不运行,网络故障都会造成主站 3 号错误

3. 在 CPU 的 V 数据区中为库指令分配存储区(Library Memory)

Modbus Master 指令库需要一个284个字节的全局 V 存储区。

1.3 关于 Modbus RTU 主站协议及地址

此为西门子正式推出的标准库指令说明资料。

在 Modbus RTU Master 协议和 PPI 协议之间切换:

Modbus RTU Master 协议指令库使通信口工作在自由口模式下,此时不能与 Micro/WIN 软件通信。要在

切换回 PPI 协议,可以:

●将 MBUS_CTRL 指令的 Mode 输入端设置为逻辑"0"

●将 CPU 的允许模式选择开关置为 STOP 位置

Modbus RTU Master 协议库的执行时间:

Modbus RTU Master 协议库的 MBUS_CTRL 指令不需要很长的执行时间。MBUS_需要 1.11 ms 用于初

始化,在后续的每个扫描周期中只占用 0.41 ms。

调用 MBUS_MSG 子程序会加长处理时间。大部分时间都用于 CRC 校验的计算。每读、写一个字的数据

就需要 1.85 ms 扫描时间。数据最多的情况下(读、写 120 字的数据),扫描时间大概会扩增加 222 ms。

读操作的时间主要消耗在接收数据上;写操作的时间主要消耗在发送数据上。

Modbus 地址

通常 Modbus 地址由 5 位数字组成,包括起始的数据类型代号,以及后面的偏移地址。Modbus Master 协议库把标准的 Modbus 地址映射为所谓 Modbus 功能号,读写从站的数据。Modbus Master 协议库支持如下地址:

●00001 - 09999:数字量输出(线圈)

●10001 - 19999:数字量输入(触点)

●30001 - 39999:输入数据寄存器(通常为模拟量输入)

●40001 - 49999:数据保持寄存器

Modbus Master 协议库支持的功能

为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:

表 1. 需要从站支持的功能

Modbus 地址读/写Modbus 从站须支持的功能

00001 - 09999 数字量输出读功能 1

功能 5:写单输出点

功能 15:写多输出点

10001 - 19999 数字量输入读功能 2 写-

30001 - 39999输入寄存器读功能 4 写-

40001 - 49999 保持寄存器读功能 3

功能 6:写单寄存器单元

功能 16:写多寄存器单元

Modbus 地址和 S7-200 存储区地址的映射

S7-200 通过 Modbus Master 和 Slave 协议库通信时,Modbus 地址和 S7-200 内存储区地址的映射关系都类似。

Modbus 保持寄存器地址映射举例:

Modbus 数字量地址映射举例:

位地址(0xxxx 和 1xxxx)数据总是以字节为单位打包读写。第一个字节中的最低有效位对应 Modbus 地址的起始地址。如下图所示:

图 4. 数字量地址映射举例

1.4 Modbus RTU 主站常问问题

Modbus RTU 主站库对 CPU 的版本是否有要求,为什么编译例子程序时,会遇到 4 个错误?

Modbus RTU 主站库对 CPU 的版本确实有要求,CPU 的版本必须为 2.00 或者 2.01(即订货号为

6ES721*-***23-0BA*),1.22 版本之前(包括 1.22 版本)的 S7-200 CPU 不支持。

Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?

Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的PPI 编程通信监控。如果通信口都已经被占用,可以考虑:

●加一个通信模块(如 EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口

●中止自由口模式,可以将 CPU 上的模式开关从 RUN 拨到 STOP;或者保持处于 RUN 状态,用程

序停止指令库的 Modbus 模式(参见指令库应用)

如何理解 Modbus 地址与功能码的区别?

Modbus 地址与 Modbus 的功能码是两个层次的概念。

根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。

有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何指定 Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓"功能码",如功能 1 指定读取单个/多个数字量输出点的值。

支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。Modbus 地址所访问的数据,是通过各种"功能"读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。

如何访问大于 9999 的保持寄存器地址?

通常 Modbus 协议的保持寄存器地址范围在 40001 - 49999 之间。对于多数应用来说已经够了。但有些Modbus 从站把地址映射到保持寄存器区的地址超过 9999 的部分。

Modbus Master 协议库支持超过 9999 的保持寄存器地址。地址范围为 400001 - 465536。只需在调用MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。

Modubs Master 扩展地址模式仅支持保持寄存器区,不支持其他地址类型。

S7-200 作为 Modbus 主站方接收上来的数据格式与第三方设备不一样怎么办?

西门子PLC数据的存储格式为高位低存方式。举例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方设备与西门子数据存储格式不同,是低位低存的方式,那么通信上来的数据就会存在错误,需要进行转换才能使用。编程的方式比较多样,针对双字中高低字的交换可以使用SWAP(字交换)指令,若是字节交换可以考虑循环移位指令。

S7-200 是否支持如 Modbus TCP 等其它协议?

不支持。S7-200自身的通信端口或其通信扩展模块均不支持 Modbus TCP、CANopen、DeviceNet 以及BACnet 通信协议。

为什么 S7-200 作 Modbus 主站时 MBUS_MSG 指令报6号错误?

引起6号错误主要有两方面的原因:1.多个 MBUS_MSG 指令同时使能执行;2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。

1.5 Modbus RTU主站例程

2.Modbus RTU从站

2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议

S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过

S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。

详情请参考《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)。

2.2 编程基本步骤:

检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。

检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;

图1. 指令树中的库指令

编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。关于参数的详细说明,可在子程序的局部变量表中找到;

图2. 调用Modbus RTU通信指令库

图中参数意义如下:

a-模式选择:启动/停止Modbus,1=启动;0=停止

b-从站地址:Modbus从站地址,取值1~247

c-波特率:可选1200,2400,4800,9600,19200,38400,57600,115200

d-奇偶校验:0=无校验;1=奇校验;2=偶校验

e-延时:附加字符间延时,缺省值为0

f-最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128 g-最大AI字数:参与通信的最大AI通道数,可为16或32

h-最大保持寄存器区:参与通信的V存储区字(VW)

i-保持寄存器区起始地址:以&VBx指定(间接寻址方式)

j-初始化完成标志:成功初始化后置1

k-初始化错误代码

l-Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。

m-错误代码:0=无错误

表 1.从站错误代码

错误代码描述

0 无错误

1 存储区范围错误

2 非法波特率或校验

3 非法从站地址

4 Modbus 参数的非法值

5 保持寄存器与Modbus从站符号地址重复

6 接收校验错误

7 接收CRC错误

8 非法功能请求/不支持的功能

9 请求中有非法存储区地址

10 从站功能未使能

注意:由子程序参数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 等。

2.3 Modbus RTU 从站地址与S7-200的地址对应

Modbus地址总是以00001、30004之类的形式出现。S7-200内部的数据存储区与Modbus的0、1、3、4共4类地址的对应关系如下:

表2. Modbus地址对应表

Modbus地址S7-200数据区

00001 ~ 00128 Q0.0 ~ Q15.7

10001 ~ 10128 I0.0 ~ I15.7

30001 ~ 30032 AIW0 ~ AIW62

40001 ~ 4xxxx T ~ T + 2 * (xxxx -1)

其中T为S7-200中的缓冲区起始地址,即 HoldStart。

如果已知S7-200中的V存储区地址,推算Modbus地址的公式如下:

Modbus地址 = 40000 + (T/2+1) ; T为偶数

2.4 Modbus RTU 从站指令库支持的功能码

Modbus RTU 从站指令库支持特定的 Modbus 功能。访问使用此指令库的主站必须遵循这个指令库的要求。

表 3. Modbus RTU 从站功能码

功能码主站使用相应功能码作用于此从站的效用

1 读取单个/多个线圈(离散量输出点)状态。功能 1 返回任意个数输出点(Q)的 ON/OFF 状态。

2 读取单个/多个触点(离散量输入点)状态。功能 2 返回任意个数输入点(I)的ON/OFF 状态。

3 读取单个/多个保持寄存器。功能 3 返回 V 存储区的内容。在 Modbus 协议下保持寄存器都是"字"值,在一次请求中可以读取最多 120 个字的数据。

4 读取单个/多个输入寄存器。功能 4 返回 S7-200 的模拟量数据值。

5 写单个线圈(离散量输出点)。功能 5 用于将离散量输出点设置为指定的值。这个点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。

6 写单个保持寄存器。功能 6 写一个值到 S7-200 的 V 存储区的保持寄存器中。

15 写多个线圈(离散量输出点)。功能 15 把多个离散量输出点的值写到 S7-200 的输出映像寄存器(Q 区)。输出点的地址必须以字节边界起始(如 Q0.0 或Q2.0),并且输出点的数目必须是 8 的整数倍。这是此 Modbus RTU 从站指令库的限制。些点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。

16 些多个保持寄存器。功能 16 写多个值到 S7-200 的 V 存储区的保持寄存器中。在一次请求中可以写最多 120 个字的数据。

2.6Modbus RTU从站例程

2.7 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是Modbus RTU从站程序,用户可以参考。

S7-200是否可以组成Modbus RTU通信网络?如何组网?

S7-200可以组成RS-485基础上的Modbus RTU网络。如果通信对象是不同标准的通信口,可能还需要转换。

3.STEP 7-Micro/WIN 的标准指令库

STEP 7-Micro/WIN V4.0 以上版内部已经带有新的指令库,但在未安装西门子 Instruction Library 软件包的情况下,不能显示出来使用。

3.1 分配库指令数据区

调用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。

如果在编程时不分配库指令数据区,编译时会产生许多相同的错误(错误18)。

操作步骤(以Modbus RTU库指令为例):

在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory。如图2所示:

图2

在弹出的选项卡中设置库指令数据区,如图2所示:

图3.缺省情况下是从VB0开始,但因为与Modbus的保持寄存区冲突,所以手动改为VB2000。按"Suggest Address"按钮也可以自动分配。

可以使用Suggest Address(推荐地址)设置数据区,但要注意编程软件设置的数据区地址,只考虑到了其他一般寻址,而未考虑到诸如Modbus数据保持寄存器区等的设置。应当确保不与其他任何已使用的数据区重叠、冲突。不应重复按Suggest Address按钮,否则也会造成混乱。

在STEP 7-Micro/WIN32 V3.1中,有分配库指令数据区时有不同的操作方法,需要在Symbol Table(符号表)中设置一个首地址。我们强烈建议使用当时最新的编程版本。

西门子指令解释

置位/复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。对于置位操作,一旦RLO为1,则被寻址信号(输出信号)状态置1,即使RLO又变为0,输出仍保持为1;对于复位操作,一旦RLO为1,则被寻址信号(输出信号)状态置0,即使RLO又变为0,输出仍保持为0。 语句表STL表示的置位/复位指令 ●R Reset 复位指令 ●S Set 置位指令 梯形图LAD表示的置位/复位指令 ●---( S ) Set Coil 线圈置位指令 ●---( R ) Reset Coil 线圈复位指令 ●SR Set-Reset Flip Flop 复位优先型SR双稳态触发器指令 ●RS Reset-Set Flip Flop 置位优先型RS双稳态触发器指令 位逻辑指令的运算结果用两个二进制数字1和0来表示。可以对布尔操作数(BOOL)的信号状态扫描并完成逻辑操作。逻辑操作结果称为RLO(result of logic operation)。 语句表STL表示的基本位逻辑指令 ● A And 逻辑“与” ●AN And Not 逻辑“与非” ●O Or 逻辑“或” ●ON Or Not 逻辑“或非”

●X Exclusive Or 逻辑“异或” ●XN Exclusive Or Not 逻辑“异或非” ●= Assign 赋值指令 ●NOT Negate RLO RLO取反 ●SET Set RLO (=1) RLO=1 ●CLR Clear RLO (=0) RLO=0 ●SAVE Save RLO in BR Register 将RLO的状态保存到BR。边沿信号识别指令。 位逻辑指令的运算规则:“先与后或”。 可以用括号将需先运算的部分括起来,运算规则为: “先括号内,后括号外”。 梯形图LAD表示的基本位逻辑指令 ●---| |--- Normally Open Contact (Address) 常开触点 ●---|/|--- Normally Closed Contact (Address) 常闭触点 ●---(SAVE) Save RLO into BR Memory 将RLO的状态保存到BR ●XOR Bit Exclusive OR 逻辑“异或”

西门子S7200与VLT2800 Modbus RTU通讯调试说明

Modbus Modbus , Modbus Modbus Modbus 1 Modbus Modbus RS-232C Modem Modbus Modbus 2 Modbus 3 1 03 2 ASCII RTU Modbus Modbus ASCII : 1 ... n LRC LRC RTU

1 ... n CRC CRC ASCII RTU Modbus MAP Modbus Plus Modbus 1 ASCII Modbus ASCII 8Bit ASCII 1 ASCII 0...9 A...F ASCII 1 7 1 1 2 Bit LRC( ) 2 RTU Modbus RTU 8Bit 4Bit ASCII 8 0...9 A...F 8 1 8 1 1 2 Bit CRC( ) Modbus ASCII RTU Modbus RTU 3.5 0...9,A...F 3.5

1.5 3.5 CRC CRC T1-T2-T3-T4 8Bit 8Bit n 8Bit 16Bit T1-T2-T3-T4 1 ASCII 8Bit RTU 0...247 ( ) 1 (247) 0 Modbus 2 ASCII 8Bits RTU 1 (255) ( ) 1 0 0 0 0 0 0 1 1 03H 1 0 0 0 0 0 1 1 83H 3 00...FF ASCII RTU 03 10 0 0B 4 Modbus ASCII ASCII ASCII LRC LRC RTU

RTU 16Bits ( 8 ) CRC CRC Modbus LRC CRC RTU CRC CRC CRC 16 CRC CRC CRC 1 16 8 8Bit CRC CRC 8 OR 0 LSB LSB 1 LSB 0 8 8 8 CRC CRC 1.2004 6 15 VLT6000 2.6X VLT2800 2.8X Modbus RTU 175Z3362 Modbus RTU VLT6000 VLT2800 Modbus RTU RS485 +/- 68/69 LCP 5XX 9600Baud, 19200Baud. 2.DANFOSS ANFOSS ANFOSS SIMATIC S7-200 PLC S7-200 PLC FreeportMode DANFOSS DANFOSS VLT2800 MODBUS RTU .S7

几种通信总线详尽总结

微处理器中常用的集成串行总线是通用异步 接收器传输总线(UART)、串行通信接口(SCI) 和通用串行总线(USB)等,这些总线在速度、 物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C) 和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。 串行与并行相比 串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN 串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。 另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代。

西门子工业通信网络指南

第一章概述 1.1 自动化控制系统的发展 1.2 全集成自动化 1.3 SIMATIC NET工业通信网络 第二章MPI通信 2.1 MPI概述 2.2 MPI网络 2.3 设置MPI 2.3.1 设备MPI参数 2.3.2 PC侧的MPI通信卡的类型 2.3.3 利用电话网程编程 2.4 PLC-PLC之间通过MPI通信 2.4.1 全局数据包通信方式只适用于S7300/400之间通信2.4.2 无组态连接通信方式 双边编程通讯方式:适用于S7300/400之间通信单边编程通讯方式:适用于S7300/400之间通信2.4.3 组态连接通信方式 2.5 S7PLC与HMI产品之间的MPI通信 2.5.1 PLC与TP/OP通信 2.5.2 S7PLC与监控软件WinCC的MPI通信 2.5.3 WinCC和PLC之间的远程通信 第三章PROFIBUS通信 3.1 PROFIBUS介绍 3.1.1 PROFIBUS的协议结构和类型 3.1.2 PROFIBUS总线和总线终端器 3.2 PROFIBUS总线的拓扑结构 3.2.1 PROFIBUS电气接口网络 3.2.2 PROFIBUS光纤接口网络 3.2.3 其他PROFIBUS接口网络 3.3 PROFIBUS总线设置和属性 3.4 PROFIBUS的应用 3.5 PROFIBUS诊断 3.6 PROFIBUS连接从站设备的应用 3.7 FDL通信方式 3.8 FMS通信方式 3.9 PROFIBUS-S7通信 第4章工业以太网通信 4.1以太网简介 4.1.1 以太网的诞生 4.1.2 以太网的发展历史 4.1.3 以太网技术 4.2 工业以太网 4.2.1 与传统以太网的比较 4.2.2 以太网应用于工业自动化中的关键问题及发展方向

Modbus RTU通讯协议

要实现Modbus RTU通信, 一、需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。 Modbus RTU从站指令库只支持CPU上的通信0口(Port0) 基本步骤: 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. 西门子编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用 MBUS_SLAVE,并指定相应参数。 关于参数的详细说明,可在子程序的局部变量表中找到; 调用Modbus RTU通信指令库图中参数意义如下: a. 模式选择:启动/停止Modbus,1=启动;0=停止 b. 从站地址:Modbus从站地址,取值1~247 c. 波特率:可选1200,2400,4800,9600,19200,38400,57600,115200 d. 奇偶校验:0=无校验;1=奇校验;2=偶校验 e. 延时:附加字符间延时,缺省值为0 f. 最大I/Q位:参与通信的最大I/O点数,S7-200的I/O映像区为128/128, 缺省值为128 g. 最大AI字数:参与通信的最大AI通道数,可为16或32 h. 最大保持寄存器区:参与通信的V存储区字(VW) i. 保持寄存器区起始地址:以&VBx指定(间接寻址方式) j. 初始化完成标志:成功初始化后置1

用西门子CP341实现Modbus RTU通讯

用西门子CP341实现Modbus RTU通讯 1 概述 CP341模块是西门子S7—3001400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接 4 CP341驱动配置 在您的计算机上首先安装STEP7 5.x软件和CP34x模板所带的软件驱动程序.模板驱动程序包括了对CP341进行参数化的窗口(在STEP7的硬件 组态界面下可以打开)、用于串行通讯的FB程序块。当系统上电,CP34x模板初始化完成后,CP34x上的sF灯点亮: 在硬件组态窗口中双击CP341模板,打开CP341模板的属性窗口,选择通讯协议modbus,网络工作方式设置为半双工,请记录下模板的硬件地址 以便在编程序时用到。双击CP341模板属性窗口中的protocol 协议图标进行协议参数设置,这里我们使用默认值:96oo bit,s, 8 data bits, 1 stop bit,even parity。对的硬件组态存盘编译,下载硬件组态.如果此时sF灯亮.请将通讯电缆与另一个通讯伙伴进行连接后.SF灯熄灭,说明硬件组态正确。 5 程序编写 (1)CP341发送模块的设计而发送程序主要是通过调用功能块FB8来实现,FB8 是基于上升沿触发工作的.来一个上升沿FB8工作一次向总线上发 送一个请求数据包,所以在程序中一定要设计一个触发代码段,来不断的使REQ:=M50.0循环往复的置“1”置“0”,这样FB8就可以正常运行了。 在设计程序时一定要注意FB8的参数SF:=‘S’及R_TYP:=‘X’的值都是大写否则程序调试不成功。FB8需要一个背景数据块.这一背景数据块一般由系统自动生成.以上程序中为DB3;对于通过CP34 1的Modbus Master驱动通讯的发送模块需要设计发送数据块DB块.用来对主站发送参数进行设置和初始化。 Modbus能够实现的功能代码共有10个.分别针对不同的寄存器读写功能设置.功能代码Initial value:B#16#4的功能是读从站的输出数据寄存器 整数型、状态字或浮点型数据:寄存器的起始地址Initial value:W#16#0是功能代码规定的寄存器的起始地址;读取寄存器的数目Initial value:4的意义是从起始地址开始总共读取4个寄存器。 (2)CP341接收程序的设计 接收程序是调用FB7来实现的,由于CP341可以处理接收程序的细节部分.因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接 收程序同样也需要设计背景数据块本例中为Db44块和接收数据块本例中为DB5块。 (3)装载设计好的发送接收程序FC 1与FC2。 6 参数化远程从站RTU . 以上介绍的是Modbus主站的应用与程序设计,没有对远程终端RTU从站进行介绍.其实在进行程序调试时必须对从站进行一些参数设置使其参 数与主站要求的一致,包括协议类型、从站地址、寄偶校验、传输超时等,否则

西门子Port1接口定义

西门子的编程口都是口的。你用的接线方法做线肯定要失败。 图上的是的线,你还需要一个转的东西,可以参考德阳四星的转换器。 另外就是一根标准的线(自己做)。 此文原创为工控网“老菜鸟”希望吃水不忘打井人在工控上看到他记得 表示感谢。备注我不是老菜鸟。........下面先简单了解一下支持的通信 协议........比较详细的介绍请参阅《可编程控制器系统手册》第章通过 网络进行通信。........下面仅简单说明一下部分通信协议协议........该协议是西门子内部协议不公开。点对点接口是一个主从协议。主站向 从站发送申请从站进行响应从站器件不发信息不初始化信息只是等待 主站的要求并对要求作出响应。但当主站发出申请或查询时从站对其响应。主站可以是其他主机如等、编程器或文本显示器。网络中的所有都 默认为从站。系列中一些如果在程序中允许主站模式则在模式下可以作 为主站此时可以利用相关的通信指令来读写其他主机同时它还可以作 为从站来响应其他主站的申请或查询。........主站靠一个协议管理的共

享连接来与从站通讯。并不限制与任意一个从站通讯的主站数量但是在 一个网络中主站的个数不能超过。如果在用户程序中使能主站模式在运行模式下可以作主站。在使能主站模式之后可以使用网络读写指令来 读写另外一个。当作主站时它仍然可以作为从站响应其它主站的请求。 高级允许网络设备建立一个设备与设备之间的逻辑连接。对于高级每个设备的连接个数是有限制的。所有的都支持和高级协议而模块仅仅支持高级协议。协议是专门为开发的通信协议。的通信口、支持通信协议的一些通信模块也支持协议。与进行编程通信也通过协议。的网络通信是建立在网络的硬件基础上因此其连接属性和需要的网络硬件设 备是与其他网络一致的。之间的网络通信只需要两条简单的指令它们 是网络读和网络写指令。在网络读写通信中只有主站需要调用指令从站 只需编程处理数据缓冲区取用或准备数据。网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。........可以用两种方法编程实现网络读写通信.使用指令编程实现.使用中的指令向导中的向导。........使用通讯方式这是的专用通讯方式使用对中继器可以最远达到。支持的波特率有三种。这种方式是最容易实现的通讯只要编程设 置主站通讯端口的工作模式然后就可以用网络读写指令读写从站数据。 协议........该协议是西门子内部协议不公开。是多点通信的接口是一种适用于少数站点间通信的网络多用于连接上位机和少量之间近距离 通信。通过电缆和接头将控制器或的自带的编程口及自带的通信口相互 连接以及与上位机网卡的编程口口通过或电缆连接即可实现。网络中当然也可以不包括机而只包括。允许主主通讯和主从通讯。每个通信口

西门子S7200与变频器MODBUS通讯实例详解

西门子S7200与变频器MODBUS通讯实例详解 西门子S7200PLC简介 西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。来自西门子的S7 - 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。 Modbus通讯协议简介 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。 ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。 ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。 1 MODBUS RTU协议在S7-200中的应用原理 1.1 MODBUS RTU协议与S7-200相互关系简介 S7-200 CPU上的通讯口Port0可以支持MODBUS RTU协议,成为MODBUS RTU从站。此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。 想在S7-200 CPU与其他支持MODBUS RTU的设备使用MODBUS RTU协议通讯,需要由有S7-200 CPU做MODBUS主站。S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。 2 从站指令的用法: S7-200控制系统应用中,MODBUS RTU从站指令库只支持CPU上的通讯0口(Port0)。要

西门子总线连接器

1、DP总线连接器是PROFIBUS DP协议中主站和从站电缆之间的RS485通用接口器件,主要应用于制造业自动化系统中单元级和现场级通信,在PLC通讯口与Profibus电缆之间以轮循通讯的方式传输数据,能够以12 M比特率的传输速率进行信号传输,并带有内置的终端匹配电阻。 2、连接器的设计充分考虑到了电缆进线角度及缓解拉紧的问题,内置的接地金属片有效地防止了共模干扰,并具有较强的电磁兼容性能。

3、使用方便,直接将总线电缆接入DP总线连接器并将连接器插口插入Profibus主/从站的接口、用螺丝钉固定即可。 4、适用性强,有带编程口的OBB型和不带编程口的0BA型2种类型:电缆接入形式有垂直接入式和35°角接入式,可以方便地应用于不同场合。 6ES7 972-0BA12-0XA0 PROFIBUS总线连接器最大12 Mbit/s,90度出线,带有隔离功能的终端电阻,无编程器接口。 6ES7 972-0BB12-0XA0 PROFIBUS总线连接器最大12 Mbit/s,90度出线,带有隔离功能的终端电阻,有编程器接口。 6ES7 972-0BA41-0XA0 PROFIBUS总线连接器最大12 Mbit/s,35度出线,带有隔离功能的终端电阻,无编程器接口。 6ES7 972-0BB41-0XA0 PROFIBUS总线连接器最大12 Mbit/s,35度出线,带有隔离功能的终端电阻,有编程器接口。 6ES7 972-0BA50-0XA0 PROFIBUS总线连接器最大12 Mbit/s,90度出线,带有隔离功能的终端电阻,快速连接,无编程器接口。 6ES7 972-0BB50-0XA0 PROFIBUS总线连接器最大12 Mbit/s,90度出线,带有隔离功能的终端电阻,快速连接,有编程器接口。

西门子PLC通讯规则及BUS线故障查找

西门子PLC414的通讯规则 1、Prifibus通讯示意图,仅供培训参考用。 2、西门子PLC通讯规则: (1)若数据继续往下面模板传送,该块模板与下面的模板之间还有通讯,则该块模板BUS的ON/OFF开关必须拨到OFF的位 置,表示数据还要继续传送。 (2)只有在PLC通讯的首尾两块模板才需要把ON/OFF开关拨到ON位置,表示接上截至电阻,信号不再往下传送,通过截止 电阻构成回路。 (3)ET200从站是CPU与外挂输入/输出模板之间的中间处理单元,ET200上有地址位可以设置该块模板的通讯地址。 (4)主CPU414与从站之间的寻址是通过从站ET200设定的地址位来寻址。 (5)西门子PLC通讯规则,哪一根BUS线通讯有问题,则该BUS 线(往后传送)后面的PLC模板会出现BUS报警,前面通讯 正常的模板上不会BUS报警。 (6)当两个从站的地址相同时,地址相同的两块从站BUS线都会报警,但其它没有错误的从站BUS不报警。

(7)PLC一通电,就开始检查各个模板的地址是否正确,如地址不 对,则产生PLC通讯错误,BUS灯闪烁。如地址正确,这时再 把地址故意设置错误,PLC也不会报警,BUS灯不闪烁,当重新 启动PLC的CPU后,才会产生BUS线通讯报警。当PLC模板 地址错误时,设定完成新的地址后,必须关闭电源,重新开电, 重新启动PLC。否则,CPU将无法识别新的通讯地址,仍然会 有BUS线通讯报警。(在广州燕塘故障排除课程中已经验证) (8)注意:各个ET200从站的地址是从ET200发给PLC的 CPU 的,当重新设定ET200地址后,关闭CPU414的电源再启动后, ET200从站的地址仍然无法正确识别,BUS线仍然报警。但是在 设置完正确的ET200从站的地址,关闭ET200从站的电源再启 动后,CPU414能够正确识别ET200从站的地址,BUS线不再报 警。(在济南佳宝712机器上已经验证) 2、CPU414有两个通讯端口,MPI通讯端口与CPU412和PC计算机之间通 讯。 3、CPU414上的Prifibus通讯端口,是主CPU与A11、A12、A13、A1 4、 A15、A16、A17、A18(UHT)、A19(CIP)等从站之间的通讯。 二、PLC BUS线通讯故障。 (一)所有的从站BUS线BUS线都报警的原因 1、凡是Prifibus线通讯的首尾两端的从站(不再继续往下传送数据的从 站),BUS线插头应该拨到ON位置的,如果把BUS线插头拨到OFF 位置,这样截止电阻就未接到Prifibus通讯线上,Prifibus通讯线就构 不成回路,从而导致所有的ET200从站(包括UHT和CIP从站)和 CPU414主站上的BUS线都报警。(经过佳宝CF712_870751048灌装 机的实际检验,当把UHT、CIP、A21、A18(无菌风站)这四个从站 任意一个从站的BUS插头的ON/OFF开关由ON位置拨到OFF位置 时,所有的ET200从站和CPU414主站上的BUS线都报警)(在广州 杨协成和济南佳宝都已测试) 2、当BUS线在某一处断了(无论在何处断线),Prifibus通讯的两 根线就构不成回路,同样会导致所有的ET200从站(包括UHT和 CIP从站)和CPU414主站上的BUS线都报警。(在广州杨协成和 济南佳宝都已测试)

SIMOTION 工业以太网通信入门要点

1.SIMOTION工业以太网网络介质 西门子工业以太网网络通常使用的物理传输介质为屏蔽双绞线(FC TP)、工业屏蔽双绞线(ITP)和光纤。 1.1 屏蔽双绞线(Fast Connection Twist Pair) FC TP快速连接双绞线用于将DTE快速连接到工业以太网上,配合西门子FC TP RJ45接头使用,连接方式如图1所示: 图1:FC TP电缆与TP RJ45接头 将双绞线按照TP RJ45接头标示的颜色插入连接孔中,快捷、方便地将DTE设备连接到工业以太网上。使用FC双绞线从DTE到交换机最长通信距离为100米(DTE到DTE)。也可以使用普通RJ45接头,为了保证数据传输的可靠性,在无干扰情况下最长通信距离为5米。 RJ-45连接有两种连接方式,交叉连接(如图2所示)和直通连接(如图3所示)。交叉连接用于网卡之间的连接或集线器之间的连接;直通线用于网卡与集线器之间或网卡与交换机之间的连接。Siemens交换机由于采用了自适应技术,可以自动检测线序,故通过交换机可以选择任意一种电缆进行连接。 图2 交叉线连接

图3 直通线连接 SIMOTION 带有RJ45接头,建议使用西门子FC TP和FC TP RJ45接头。 1.2 工业屏蔽双绞线(Industrial Twisted Pair) 屏蔽双绞线如图4所示,它有白/蓝和白/橙两对双绞屏蔽线。外部包有屏蔽层和绝缘层,用于连接有ITP 端口的以太网设备。通过ITP电缆连接的两个设备的最远距离为100米。 图4 ITP电缆结构图 连接ITP电缆的连接头有两种,即9 针或15 针的Sub-D 接头,如图所示5、6:

S7-200的MODBUS RTU主站协议库使用方法

S7-200 MODBUS-RTU VLT . MODBUS MODBUS CTROL MODBUS MGS CRC Micro/WIN V4.0 SP5 Modbus RTU

1. Micro/WIN V4.0 SP5 1. Modbus RTU Port 0 Port 1 2. Modbus RTU 3. Modbus RTU CPU CPU 2.00 2.01 6ES721* ***23-0BA* 1.22 1.22 S7-200 CPU Modbus RTU Modbus RTU I/O Modbus RTU 1. 2. Modubs RTU .Modbus RTU 1. Modbus RTU SM0.0 MBUS_CTRL 2. SM0.0 Modbus RTU : a. EN SM0.0 b. Mode 1 Modbus 0 PPI

c. Baud 1200 2400 4800 9600 19200 38400 57600 115200 d. Parity 1 2 e. Timeout 1000 1 1 - 32767 f. Done 1 MBUS_MSG g. Error Done 1 1 2 3 2. Modbus RTU MBUS_MSG Modbus 3. Modbus RTU : a. EN MBUS_MSG MBUS_MSG MBUS_MSG Done b. First c. Slave 1 - 247 d. RW 0 1 1. 2. e. Addr 00001 0xxxx - 10001 1xxxx -

西门子PLC通讯故障的原因及处理方法

西门子PLC上面的SF灯红亮时表示系统故障,是英文(SYSTEM FAULT)的缩写,内部寻址错误,超出编程地址区,模块损坏,插件松动等原因引起。把PLC里的程序先清除掉,SF 灯还亮估计就是硬件坏了,如果不亮了,就可能你的程序有问题,再在线看看PLC信息S7-300PLC上SF灯亮而BF灯闪烁,肯定是分布式现场总线PROFIBUS-DP通信或DP从站如ABB变频器的问题,不要怀疑其他软硬件问题。 PLC带模拟量模块如果有问题,仅仅PLC上SF灯亮(比如具有硬件诊断模拟量模块可以设定模拟量信号断线、超出量程等),而不会引起SF和 BF灯同时亮;根据以上分析,重点检查S7-300PLC的硬件组态与实际硬件是否一致(硬件订货号和固件版本号),DP从站地址设置与组态的地址是否一致。 如果组态没有问题,完成硬件组态后,必须执行“保存并编译”,如果没有错误,将产生新的系统数据块,然后下载到PLC中;检查PROFIBUS 电缆及其通信连接头是否正确,PROFIBUS电缆中有两根线,一根为红色连接PROFIBUS网络接头的B连接,另一根为绿色与网络接头的A连接(进线分别为B1、A1,出线为B2、A2),不能接反。 如果仅有一路电气网段,即从S7-300PLC的X2端口(PROFIBUS-DP端口)出发只有一根PROFIBUS电缆,那么首尾(分别为 S7-300PLC和最后DP从站)上网络接头的红色末端电阻必须置“ON”位置,中间DP从站上网络接头必须置“OFF”位置。 如果ABB变频器没有通电,而你的硬件组态中包含作为DP从站的该变频器,那么S7-300PLC通电后,没有检测到ABB变频器,所以PLC 上SF灯亮,而BF 灯闪烁,这是正常现象;一般PLC与触摸屏之间采用MPI通信协议,可以与PLC 之间连接在一起同时运行,可以采用无组态的MPI通信、全局数据MPI通信和组态的MPI通信。由于S7-300PLC与触摸屏之间的MPI通信不需要STEP7软件组态,也不需要编写任何程序,只需在触摸屏组态软件上设置一下相关通信参数即可,所以触摸屏有问题是不会引起SF和BF灯亮的; 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有 10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。

SIMOTION 工业以太网通信入门

1.S I M O T I O N工业以太网网络介质西门子工业以太网网络通常使用的物理传输介质为屏蔽双绞线(FCTP)、工业屏蔽双绞线(ITP)和光纤。 1.1屏蔽双绞线(FastConnectionTwistPair) FCTP快速连接双绞线用于将DTE快速连接到工业以太网上,配合西门子FCTPRJ45接头使用,连接方式如图1所示: 图1:FCTP电缆与TPRJ45接头 将双绞线按照TPRJ45接头标示的颜色插入连接孔中,快捷、方便地将DTE设备连接到工业以太网上。使用FC双绞线从DTE到交换机最长通信距离为100米(DTE到DTE)。也可以使用普通RJ45接头,为了保证数据传输的可靠性,在无干扰情况下最长通信距离为5米。 RJ-45连接有两种连接方式,交叉连接(如图2所示)和直通连接(如图3所示)。交叉连接用于网卡之间的连接或集线器之间的连接;直通线用于网卡与集线器之间或网卡与交换机之间的连接。Siemens交换机由于采用了自适应技术,可以自动检测线序,故通过交换机可以选择任意一种电缆进行连接。 图2交叉线连接

图3直通线连接 SIMOTION带有RJ45接头,建议使用西门子FCTP和FCTPRJ45接头。 1.2工业屏蔽双绞线(IndustrialTwistedPair) 屏蔽双绞线如图4所示,它有白/蓝和白/橙两对双绞屏蔽线。外部包有屏蔽层和绝缘层,用于连接有ITP 端口的以太网设备。通过ITP电缆连接的两个设备的最远距离为100米。 图4ITP电缆结构图 连接ITP电缆的连接头有两种,即9针或15针的Sub-D接头,如图所示5、6:

????? 图5Sub-D9针接头????????????????????????????????????????????????图6Sub-D15针接头 使用Sub-D接头进行连接的网络连接牢固,不易松动。其连线方法及9/15接头的转换可以查阅西门子手册。同样ITP电缆也会有交叉连接的情况,可以直接定购ITPXP标准电缆。 SIMOTION只有RJ45以太网接口,通常不使用工业双绞线ITP。 1.3光纤 按光在光纤中的传输模式不同,光纤可分为单模光纤和多模光纤。 多模光纤:中心玻璃芯较粗(50或62.5μm),可传多种模式的光。但其模间色散较大,这就限制了传输数字信号的频率,而且随距离的增加会更加严重。例如:600MB/KM的光纤在2KM时则只有300MB的带宽了。因此,多模光纤传输的距离就比较近,一般只有几公里。 单模光纤:中心玻璃芯较细(芯径一般为9或10μm),只能传一种模式的光。因此,其模间色散很小,适用于远程通讯,但其色度色散起主要作用,这样单模光纤对光源的谱宽和稳定性有较高的要求,即谱宽要窄,稳定性要好。 光纤技术只允许点对点的连接,即一个发送装置只对应一个接收装置。因而两个站点之间需要有发送和接收两根光纤进行连接。所有SIMATICNET标准的光缆都是两根光纤。光纤的连接头有很多种如图7所示:

西门子CP441-2实现Modbus RTU通讯

西门子CP441-2实现Modbus RTU通讯 1 概述 CP441模块是西门子S7—300,400系列PLC中的串行通讯模块。该模块具有1个串行通讯口(RS232C或 TTY或RS485/422),RS422/485的通讯最大距离位1200m。支持以下协议ASCII,ModbusRTU远程终端,Data Highway(DF1协议),电气接口为15针D型孔接头。可以使用这种通讯模块实现S7300/400与其它串行通讯设备的数据交换。例如打印机、扫描仪、仪表、Modbus主从站、Data Highway站、变频器。USS站等。CP441模块可以同时与多台串行通讯设备进行通讯。如同时连接多个变频器、连接多个智能仪表等。如果采用RS422/485 modbus RTU通讯方式,需要在发送的数据包中包括站号、数据区、读写指令等信息。供CP441模块所连接的从站设备鉴别数据包是发给哪个站的。以及该数据包是对那个数据区进行的读或写的功能。 Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准,有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程。如回应来自其它设备的请求,以及怎样侦测错误并记录等。它制定了消息域格式和内容的公共格式。MODBUS为单主站网络协议,所以系统中只能够有一个Modbus主站,所有通信都由它发出并且只能够实现主站和从站的数据交换,从站之间不能进行数据交换,Modbus可支持247个之多的远程从属控制器。但实际所支持的从机数要由所用通信设备决定。采用这个系统。各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。CP441插人MODBUS主站Dongle(狗)或插入从站Dongle,就可以作为MODBUS主站。或者作为MODBUS 从站。在ModBus系统中有两种传输模式编码可选择,一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备),由这两种模式定义这两种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定。每个ModBus系统只能使用一种模式。不允许两种模式混用。字串9 2 RTU帧结构 使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在相同的网络波特率下采用多个的字符时间,这是最容易实现的。传输的第一个域是设备地址,可以使用的传输字符是十六进制的0...9,A...F。网络设备不断侦测网络总线,包括停顿间隔时间内。当第一个域(地址域)接收到后,每个设备都进行解码以判断是否发往自己的,在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束.一个新的消息可在此停顿后开始。整个消息帧必须作为一连续的流转输,如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设

西门子Port1接口定义

西门子Port1接口定义

西门子的编程口都是485口的。你用232的接线方法做线肯定要失败。 图上的是485的线,你还需要一个232转485的东西,可以参考德阳四星的RS232/485转换器。 另外就是一根标准的232线(自己做)。 此文原创为工控网“老菜鸟”希望吃水不忘打井人在工控上看到他记得表示感谢。备注我不是老菜鸟。........下面先简单了解一下S7-200支持的通信协议........比较详细的介绍请参阅《S7-200可编程控制器系统手册》第7章通过网络进行通信。........下面仅简单说明一下部分通信协议PPIPoint to point interface协议........该协议是西门子内部协议不公开。点对点接口是一个主/从协议。主站向从站发送申请从站进行响应从站器件不发信息不初始化信息只是等待主站的要求并对要求作出

响应。但当主站发出申请或查询时从站对其响应。主站可以是其他CPU 主机如S7-300等、编程器或TD200文本显示器。网络中的所有S7-200都默认为从站。S7-200系列中一些CPU如果在程序中允许PPI主站模式则在RUN模式下可以作为主站此时可以利用相关的通信指令来读写其他主机同时它还可以作为从站来响应其他主站的申请或查询。........主站靠一个PPI协议管理的共享连接来与从站通讯。PPI并不限制与任意一个从站通讯的主站数量但是在一个网络中主站的个数不能超过32。如果在用户程序中使能PPI主站模式S7200 CPU在运行模式下可以作主站。在使能PPI主站模式之后可以使用网络读写指令来读写另外一个S7200。当S7200作PPI主站时它仍然可以作为从站响应其它主站的请求。........PPI高级允许网络设备建立一个设备与设备之间的逻辑连接。对于PPI高级每个设备的连接个数是有限制的。所有的S7200 CPU都支持PPI和PPI高级协议而EM277模块仅仅支持PPI高级协议。........PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口Port0、Port1支持PPI通信协议S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。S7-200 CPU之间的PPI网络通信只需要两条简单的指令它们是网络读NetR和网络写NetW指令。在网络读写通信中只有主站需要调用NetR/NetW指令从站只需编程处理数据缓冲区取用或准备数据。PPI网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。........可以用两

西门子工业网络通信指南

西门子工业网络通信指南 作者: 崔坚 价格: 49 元 书号: ISBN 7-111-15177-1 出版社: 机械工业出版社 出版日期: 2006 年7 月 --------------------------------------------------------------------------------------------------------------------- 内容简介 本书从网络通信的实际应用出发,以MPI、PROFIBUS 和工业以太网等多种常用的通信协议为脉络,基于西门子工业控制产品和系统,以清晰易懂的理论、丰富详实的通信实例并结合多年实践经验,全面地介绍了西门子工业自动化系统基于各种协议的通信方式及其具体应用。. 本书分为上下两册,分另对MPI 和PROFIBUS 协议的通信方式进行了详细的介绍,第一章为网络通信概述,概述了网络通信的各种形式,第二章,第三章分别以MPI 和PROFIBUS 协议为主,详述了相关网络协议,网络组件及各种通信方式的组态,编程和故障诊断方法,每种方式均配以具体实例加以说明。 书中每个通信实例互为独立单元、深入浅出、条理清晰、内容完整,并配有大量的例图与程序,深入细致地阐述了通信协议的各个方面,便于读者学习和掌握。随书附带的光盘提供了书中所有的应有的实例,程序源代码以及技术文档等。 本书适合广大工业产品用户、系统工程师、现场工程技术人员、大专院校相关专业师生、以及工程设计人员借鉴和参考。 ---------------------------------------------------------------------------------------------------------------------- 目录 序 前言 第1 章概述 1.1 自动化控制系统的发展 1.2 全集成自动化 1.3 SIMATIC NET 工业通信网络 第2 章 MPI 通信 2.1 MPI 概述 2.2 MPI 网络 2.3 设置MPI 2.4 PLC-PLC 之间通过MPI 通信 2.5 S7PLC 与HMI 产品之间的MPI 通信 第3 章 PROFIBUS 通信 3.1 PROFIBUS 介绍

西门子PROFINET 工业通信指南

西门子PROFINET工业通信指南 作者: (德)Raimond Pigan; Mark Metter 著 汤亚锋译 价格: 49.00 书号: 9787115167347 出版社: 人民邮电出版社 出版日期: 2007 年11月 ---------------------------------------------------------------------------------------------------------------------- 内容简介 本书以西门子SIMATIC产品为基础,系统地阐述了PROFINET的原理和实现方法。本书主要内容包括:从接触器到PROFINET的发展过程;以太网的基本原理和协议,实时通信的实现,PROFINET IO的概念以及组态、诊断的方法,基于组件的自动化PROFINET CBA,SIMATIC S7的PROFINET用户程序接口,PROFINET设备以及组网的方法,PROFINET网络安全的实现。. 本书适合自动化领域的工程技术人员使用,也可作为高等院校自动化和电气工程等专业师生的参考用书。 ---------------------------------------------------------------------------------------------------------------------- 目录 第1章从接触器到开放标准 1 1.1 SIMATIC的成功史 1 1.2 工业以太网的发展历程 3 1.3 PROFINET 5 1.3.1 PROFINET IO 6 1.3.2 PROFINET CBA 6 1.3.3 实时通信 7 1.3.4 现场总线集成 7 1.3.5 网络安全 7 1.3.6 PROFINET运动控制 8 1.3.7 PROFINET故障安全 8 第2章以太网基础与协议 10 2.1 以太网的基本结构 10 2.2 以太网标准帧 11 2.3 以太网地址或MAC地址 12 2.4 用于以太网的功能 12 2.4.1 自动协商 12 2.4.2 自感应——自动识别数据率 13 2.4.3 MDI/MDI-X自动交叉 13

相关主题