S7-200型PLC之间的PPI协议通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
主机 读数:NETR 从机
写数:NETW
NETR/W指令
读写指令只有一条,而一段完整的程序包含以下三个步骤
1、通信口初始化 强制通信口工作在PPI主站下,设定通信速率,数据位长度和 校验 2、装载从站信息 指定对方的:地址,数据区,读写的数据长度 3、读数/写数
一段完整程序如下
通信口初始化
清空读写区域 从机PPI地址:3
S7-200型PLC之间的PPI协议通信之一
每个控制器管理一个生产工段,有时候各个工段间需 要协同工作,这就要求在控制器之间传递信息。
PPI协议是西门子S7-200型PLC之间交换信息的专用协 议,PPI协议是一种点对点协议,它只定义了一次通信 中的主从问题,在不同时刻,节点的主从是可以变化 的。
A机:主 第一次通信: B机:从
A机:从 第二次通信:
B机:主
实际的工程中,为了便于网络管理和扩展,通常会指 定一台S7-200为主机,其余为从机。
主机
从机
从机
从机
S7-200型PLC组网通信时,从机不需要编写程序,读写 数据的程序是放在主机上的,从机收到主机的读写请 求后会自动响应回送数据。S7-200主机使用NETR和 NETW指令来读写从机的数据。
读从机IB0开始的数据
读1个字节的数据 指令执行完后将读到的 数据反映到QB0上 执行读指令
上面演示的是第一种方法,2号机读3号机,2主3从
想想看第二种方法,3号机向二号机写数据,3主2从,程序应 该怎么写??
下节课的任务:
两台S7-200,要求其中一台的QB0与另一台的IB0同步变化, 用两种方法实现。
QB0
IB0
方法一:2号机读3号机
任务分解
第一步:从机(3号机)的编程和配置 从机不需要编程,只需要在通信开始之前配置好从机的地址 即可。 第二步:主机(2号机)的编程和配置 (1)配置:与从机类似,主机在通信开始之前也要配置地址 (2)编程。 注意:在默认配置下S7-200的PPI地址是2。
Fra Baidu bibliotek
第一步:配置从机的PPI地址
注意带上通信线
程序 通信
周期一 周期一
周期二
周期三
周期四
周期二
读写指令区 读写指令并没有详细描述通信的具体细节,这些细节是由读写 指令区域中的内容来指定的。读写指令区由五部份组成,是一 个长度为8~23字节的区域,由定长和变长两个区域组成。 1、指令执行状态(1字节) 2、从机地址(1字节) 定长区域 3、从机数据区起始地址(4字节) 4、读写的数据量(1字节)
第三部份:从站的数据区起始地址
数据区指针,长度4个字节。 对于读指令,这里是读数的起 始地址。对于写指令,这里是 从机接收数据的起始地址。有 效区域四种:I、Q、M、V 举例:&IB0,&VB100, &MB5
第四部份:读写的数据量
数据量:读写的数据量,有效 取值1~16。就是说每条读写指 令最多读写16个字节的信息。
读从机IB0开始的数据
读1个字节的数据 指令执行完后将读到的 数据反映到QB0上 执行读指令
下面通过分析一个例子来详细说明读写指令的使用。
例1:两台S7-200,一台PPI地址2,另一台PPI地址3,要求2 号机的QB0与3号机的IB0同步变化(比如I0.0闭合,Q0.0吸 合)。
分析:将地址为3的PLC上IB0的状态传送到地址为2的PLC上。 AD:2 AD:3
变长区域
5、主机的读写缓存(1~16字节)
读写指令区 读写指令区是一个长度为8~23字节的区域,具体内容如下
第一部份:指令执行状态
D
A
E
0
错误代码
指令执行状态字节位于读写指令区的最前面,用来表示指令 执行的状态。 D:完成位 D=0,指令未触发,或己触发但未完成;D=1,指令完成。
A:执行位
A=0,指令未触发;A=1,指令正在执行。 E:错误位 E=0,指令未触发,或指令执行完且无通信错误发生;E=1, 执令执行完毕,但有通信错误发生 注意:指令执行状态字节的内容在下一条读写指令执行前将保 持不变,这一特点被用来触发新的一条读写指令。
特殊功能寄存器SMB30和SMB130分别用来控制P0口和P1口的 工作模式。想想看,要P0工作模式为PPI主站,速率115200bit/S, 数据8位,偶校验,SMB30=??
SMB30=2#01011010
01 0 110 10
第三步:编程——2、装载从站信息
清空读写区域
将要读取的从机地址是:3
QB0
IB0
两种方法:
第一种,2号机读3号机,2号机为主机,3号机为从机。
在2号机上编程,使用读指令(NETR)。
AD:2 NETR
AD:3 无通信程序
QB0
IB0
两种方法:
第二种,3号机向2号机写入数据,3号机为主机,2号机为从 机。
在3号机上编程,使用写指令(NETW)。 AD:2 无通信程序 AD:3 NETW
第五部份:主站的数据缓存区
数据缓存。对于读指令,从站 读上来的信息,放到这里。对 于写指令,往从站写入的信息 放到这里。
读指令(NETR)
写指令(NETW)
把上面指定 的从站里的 内容放到下 面的区域里
把下面数据 区里的内容 写到上面指 定的从站里
完整程序如下
通信口初始化
清空读写区域 从机PPI地址:3
将从机的PPI地址设为3,编译下载。注意,CPU226有两个通信 口:P0和P1
第二步:配置主机的PPI地址
将主机的PPI地址设为2
问题:这里的波特率配置对通信有没有影响??
第三步:编程——1、通信口初始化
设定P0通信口的参数,SMB30=2#10的含义如下:
PPI主站模式,
速率为38400bit/S, 数据位有8个位 无奇偶校验
指令执行状态
可以用状态字节来判断指令的执行情况
完 执 错 成 行 误 D 指令正在执行 0 1 1 A 1 0 0 E 0 0 1 0 0 0 0 错误代码 错误代码 错误代码 错误代码
指令执行完毕,无错误
指令执行完毕,有错误
通信错误和错误代码主要用于通信故障分析
第二部份:远程站地址
从机的站地址,长度1个字节, 有效取值:1~126。 注意:这里的设定值要与真 实的从站地址一致
读从机IB0开始的连续数据区
数据量是一个字节,每次最多 读写16个字节的数据
第三步:编程——3、读指令
上面这行程序的意思是:如果通信口空闲,执行读数指令, 否则放弃等待下一个扫描周期。 数据的收发与程序执行是异步的,如果扫描周期很短,则一 条读/写数指令可能要经过几个周期才能执行完毕。如果上 一条读数指令未执行完,又触发一个新的读指令,新的读指 令将被乎略。
写数:NETW
NETR/W指令
读写指令只有一条,而一段完整的程序包含以下三个步骤
1、通信口初始化 强制通信口工作在PPI主站下,设定通信速率,数据位长度和 校验 2、装载从站信息 指定对方的:地址,数据区,读写的数据长度 3、读数/写数
一段完整程序如下
通信口初始化
清空读写区域 从机PPI地址:3
S7-200型PLC之间的PPI协议通信之一
每个控制器管理一个生产工段,有时候各个工段间需 要协同工作,这就要求在控制器之间传递信息。
PPI协议是西门子S7-200型PLC之间交换信息的专用协 议,PPI协议是一种点对点协议,它只定义了一次通信 中的主从问题,在不同时刻,节点的主从是可以变化 的。
A机:主 第一次通信: B机:从
A机:从 第二次通信:
B机:主
实际的工程中,为了便于网络管理和扩展,通常会指 定一台S7-200为主机,其余为从机。
主机
从机
从机
从机
S7-200型PLC组网通信时,从机不需要编写程序,读写 数据的程序是放在主机上的,从机收到主机的读写请 求后会自动响应回送数据。S7-200主机使用NETR和 NETW指令来读写从机的数据。
读从机IB0开始的数据
读1个字节的数据 指令执行完后将读到的 数据反映到QB0上 执行读指令
上面演示的是第一种方法,2号机读3号机,2主3从
想想看第二种方法,3号机向二号机写数据,3主2从,程序应 该怎么写??
下节课的任务:
两台S7-200,要求其中一台的QB0与另一台的IB0同步变化, 用两种方法实现。
QB0
IB0
方法一:2号机读3号机
任务分解
第一步:从机(3号机)的编程和配置 从机不需要编程,只需要在通信开始之前配置好从机的地址 即可。 第二步:主机(2号机)的编程和配置 (1)配置:与从机类似,主机在通信开始之前也要配置地址 (2)编程。 注意:在默认配置下S7-200的PPI地址是2。
Fra Baidu bibliotek
第一步:配置从机的PPI地址
注意带上通信线
程序 通信
周期一 周期一
周期二
周期三
周期四
周期二
读写指令区 读写指令并没有详细描述通信的具体细节,这些细节是由读写 指令区域中的内容来指定的。读写指令区由五部份组成,是一 个长度为8~23字节的区域,由定长和变长两个区域组成。 1、指令执行状态(1字节) 2、从机地址(1字节) 定长区域 3、从机数据区起始地址(4字节) 4、读写的数据量(1字节)
第三部份:从站的数据区起始地址
数据区指针,长度4个字节。 对于读指令,这里是读数的起 始地址。对于写指令,这里是 从机接收数据的起始地址。有 效区域四种:I、Q、M、V 举例:&IB0,&VB100, &MB5
第四部份:读写的数据量
数据量:读写的数据量,有效 取值1~16。就是说每条读写指 令最多读写16个字节的信息。
读从机IB0开始的数据
读1个字节的数据 指令执行完后将读到的 数据反映到QB0上 执行读指令
下面通过分析一个例子来详细说明读写指令的使用。
例1:两台S7-200,一台PPI地址2,另一台PPI地址3,要求2 号机的QB0与3号机的IB0同步变化(比如I0.0闭合,Q0.0吸 合)。
分析:将地址为3的PLC上IB0的状态传送到地址为2的PLC上。 AD:2 AD:3
变长区域
5、主机的读写缓存(1~16字节)
读写指令区 读写指令区是一个长度为8~23字节的区域,具体内容如下
第一部份:指令执行状态
D
A
E
0
错误代码
指令执行状态字节位于读写指令区的最前面,用来表示指令 执行的状态。 D:完成位 D=0,指令未触发,或己触发但未完成;D=1,指令完成。
A:执行位
A=0,指令未触发;A=1,指令正在执行。 E:错误位 E=0,指令未触发,或指令执行完且无通信错误发生;E=1, 执令执行完毕,但有通信错误发生 注意:指令执行状态字节的内容在下一条读写指令执行前将保 持不变,这一特点被用来触发新的一条读写指令。
特殊功能寄存器SMB30和SMB130分别用来控制P0口和P1口的 工作模式。想想看,要P0工作模式为PPI主站,速率115200bit/S, 数据8位,偶校验,SMB30=??
SMB30=2#01011010
01 0 110 10
第三步:编程——2、装载从站信息
清空读写区域
将要读取的从机地址是:3
QB0
IB0
两种方法:
第一种,2号机读3号机,2号机为主机,3号机为从机。
在2号机上编程,使用读指令(NETR)。
AD:2 NETR
AD:3 无通信程序
QB0
IB0
两种方法:
第二种,3号机向2号机写入数据,3号机为主机,2号机为从 机。
在3号机上编程,使用写指令(NETW)。 AD:2 无通信程序 AD:3 NETW
第五部份:主站的数据缓存区
数据缓存。对于读指令,从站 读上来的信息,放到这里。对 于写指令,往从站写入的信息 放到这里。
读指令(NETR)
写指令(NETW)
把上面指定 的从站里的 内容放到下 面的区域里
把下面数据 区里的内容 写到上面指 定的从站里
完整程序如下
通信口初始化
清空读写区域 从机PPI地址:3
将从机的PPI地址设为3,编译下载。注意,CPU226有两个通信 口:P0和P1
第二步:配置主机的PPI地址
将主机的PPI地址设为2
问题:这里的波特率配置对通信有没有影响??
第三步:编程——1、通信口初始化
设定P0通信口的参数,SMB30=2#10的含义如下:
PPI主站模式,
速率为38400bit/S, 数据位有8个位 无奇偶校验
指令执行状态
可以用状态字节来判断指令的执行情况
完 执 错 成 行 误 D 指令正在执行 0 1 1 A 1 0 0 E 0 0 1 0 0 0 0 错误代码 错误代码 错误代码 错误代码
指令执行完毕,无错误
指令执行完毕,有错误
通信错误和错误代码主要用于通信故障分析
第二部份:远程站地址
从机的站地址,长度1个字节, 有效取值:1~126。 注意:这里的设定值要与真 实的从站地址一致
读从机IB0开始的连续数据区
数据量是一个字节,每次最多 读写16个字节的数据
第三步:编程——3、读指令
上面这行程序的意思是:如果通信口空闲,执行读数指令, 否则放弃等待下一个扫描周期。 数据的收发与程序执行是异步的,如果扫描周期很短,则一 条读/写数指令可能要经过几个周期才能执行完毕。如果上 一条读数指令未执行完,又触发一个新的读指令,新的读指 令将被乎略。