一种S7-300与S7-200自由口无线通信实现方法
时间:04-09
来源:互联网
点击:
1 项目简介
滨州市污水处理厂占地100万立方米。采用德国BIOLAK污水处理工艺,日处理水规模为10万立方米。项目使用四套S7-300和两套S7-200建成分布式控制系统,完成整个污水处理的控制、数据采集功能,本文仅叙述了项目的一部分——S7-300和S7-200通信内容。
S7-200PLC作为小型PLC,以其功能强、性价比高在工控领域中被广泛应用。在S7-200与S7-300或WINCC通信时,通常需要安装EM277或CP243-1模块,成本升高,使得S7-200性价比优势大打折扣。自由口通信是S7-200的突出特点之一,本文介绍了一种经济灵活的通信方法,其可行性、可靠性在实际工程中得到验证。图1为滨州污水处理厂监控中心。
2 工程应用中的硬件及网络结构
滨州污水处理厂自动化监控系统中,两刮泥桥上各有一台S7-200PLC,每台PLC控制8台吸泥泵及刮泥桥的正反向运动。S7-200PLC的柜子安装在刮泥桥上,处于不停地来回运动中,不适合进行有线通信,采取了无线数传电台方式。
S7-200CPU上的通信口是基于RS485的,通过一个RS485/232转换器将S7-200连接到电台;在脱水机房的S7-300上挂一串口通信模块CP340,并连接到数传电台,通过编程便可以实现S7-300与S7-200间的通信;监控室的上位机以MPI总线方式与S7-300通信,便可间接监控S7-200。系统网络结构如图2
3 通信功能的实现
通信程序要实现S7-300向一个S7-200站发送7个字节的数据,然后接收并存储该S7-200返回的6个字节数据。S7-300发送的7个字节中,第1个字节是地址信息,第2、3、4字节是吸泥泵及刮泥桥控制数据信息,第5、6字节是1、2字节和3、4字节异或值,作为校验判断信息,第7位字节数据信息无意义,仅仅是为了触发一次S7-200的字符接收中断程序;S7-200向S7-300发送的6个字节中,第1个字节是S7-200的站地址信息,第2、3、4字节是吸泥泵及刮泥桥状态数据信息,第5、6字节为校验信息。
3.1 S7-300端通信程序
在自由口模式下,无论S7-200还是S7-300,通信协议完全由程序控制。CP340通过调用FB2 P_RCV来接收数据,调用FB3 P_SEND来发送数据。发送功能块FB3 P_SEND的参数REQ上升沿初始化发送请求,参数DB_NO指定发送数据块编号,参数DBB_NO是发送数据在参数DB_NO指定数据块中起始字节,LEN指定传输数据的字节长度;接收功能块FB2 P_RCV参数EN_R允许读数据,参数DB_NO指定接收数据块编号,参数DBB_NO是接收数据在参数DB_NO指定数据块中起始字节。
S7-300采用轮循方式与两S7-200通信,即第一秒内向1号站发送数据,然后接收1号站返回的数据(S7-200在接收到S7-300发送的数据后会立刻向S7-300发送数据);第二秒内向2号站发送数据,然后接收2号站返回的数据,不停地循环通信。S7-300通信程序流程如图3。
S7-300通信程序详细介绍
AN M 30.0
L S5T#2S
SD T 1
A M 30.0
R T 1
L T 1
T MW 40
NOP 0
A T 1
= M 30.0
//设一2秒定时器,定时时间到自动进行下一次定时,当前值存入MW40
A(
L MW 40
L 102
》I
)
A(
L MW40
L 200
《I
)
= M30.1
// 定时器第一秒钟内,即102《MW40《200,M30.1为1
A(
L MW 40
L 2
》I
)
A(
L MW 40
L 100
《I
)
= M 30.2
//定时器第二秒钟内M30.2为1
A (
A M 30.1
JNB _001
L 0
T MW 34
SET
SAVE
CLR
_001: A BR
)
JNB _002
L 0
T MW 36
_002: NOP 0
// M30.1为1时,即定时器第一秒内,使MW34=0、MW36=0,作为起始字节值
A (
A M 30.2
JNB _003
L 8
T MW 34
SET
SAVE
CLR
_003: A BR
)
JNB _004
L 8
T MW 36
_004: NOP 0
// M30.2为1时,即定时器第二秒内,使MW34=8、MW36=8,作为起始字节值
O M 30.1
O M 30.2
= M 33.0
A M 33.0
= L 20.0
BLD 103
CALL “P_SEND” , DB19
REQ :=L20.0
R :=
LADDR :=320
DB_NO :=2
DBB_NO:=MW34
LEN :=7
DONE :=M50.1
ERROR :=M50.2
STATUS:=MW52
NOP 0
// 调用发送指令,当M30.1为1时(其上升沿初始化发送请求),即定时器第一秒内发送DB2.DBB0起始的7个字节,第一个字节为1站地址;当M30.2为1时(其上升沿初始化发送请求),即定时器第2秒内发送DB2.DBB8起始的7个字节,第一个字节为2站地址
A M 33.0
= L 20.0
BLD 103
CALL “P_RCV” , DB20
EN_R :=L20.0
R :=
LADDR :=320
DB_NO :=22
DBB_NO:=MW36
NDR :=M60.1
ERROR :=M60.2
LEN :=MW62
STATUS:=MW64
NOP 0
// 调用接收指令,当M30.1为1时(允许读数据),即定时器第一秒内接收1号S7-200站回传的6字节数据,存入DB22数据块中,起始字节为DB22.DBB0;当M30.2为1时,即定时器第2秒内接收2号S7-200站回传的6字节数据,存入DB22数据块中,起始字节为DB22.DBB8
3.2 S7-200端通信程序
S7-200 PLC程序分为主程序、子程序和中断程序,主程序完成控制和子程序调用功能,子程序完成通信口初始化功能,中断程序完成数据的接收和发送功能。发送数据采用发送指令XMT,接收数据采用逐字节接收方法,通信口接收每个字节都会暂存到特殊存储器SMB2中,并且产生中断,利用中断程序控制数据的接收。由于S7-200CPU的通信是建立在RS-485半双工通信硬件的基础上,接收和发送不能同时进行。通信中断程序要做到:接收指令不结束,就不能执行发送指令。
反映S7-200CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当模式开关处于TERM位置时,SM0.7为0;当模式开关处于RUN位置时,SM0.7为1。SMB30是自由口模式控制字节,用来设定校验方式、通信协议、波特率等通信参数(其各个位含义参阅相关手册),中断事件号8为端口0接收字符中断,中断事件号9为端口0发送完成中断。
当SM0.7为1时,调用子程序SBR_0设置SMB30,允许进行自由口通信;SM0.7为0时,调用子程序SBR_1重新设置SMB30,停止自由口通信,恢复PPI通信,便于用Micro/WIN软件对CPU运行状态进行监视。S7-200通信程序流程如图4
滨州市污水处理厂占地100万立方米。采用德国BIOLAK污水处理工艺,日处理水规模为10万立方米。项目使用四套S7-300和两套S7-200建成分布式控制系统,完成整个污水处理的控制、数据采集功能,本文仅叙述了项目的一部分——S7-300和S7-200通信内容。
S7-200PLC作为小型PLC,以其功能强、性价比高在工控领域中被广泛应用。在S7-200与S7-300或WINCC通信时,通常需要安装EM277或CP243-1模块,成本升高,使得S7-200性价比优势大打折扣。自由口通信是S7-200的突出特点之一,本文介绍了一种经济灵活的通信方法,其可行性、可靠性在实际工程中得到验证。图1为滨州污水处理厂监控中心。
图1 滨州污水处理厂监控中心
2 工程应用中的硬件及网络结构
滨州污水处理厂自动化监控系统中,两刮泥桥上各有一台S7-200PLC,每台PLC控制8台吸泥泵及刮泥桥的正反向运动。S7-200PLC的柜子安装在刮泥桥上,处于不停地来回运动中,不适合进行有线通信,采取了无线数传电台方式。
S7-200CPU上的通信口是基于RS485的,通过一个RS485/232转换器将S7-200连接到电台;在脱水机房的S7-300上挂一串口通信模块CP340,并连接到数传电台,通过编程便可以实现S7-300与S7-200间的通信;监控室的上位机以MPI总线方式与S7-300通信,便可间接监控S7-200。系统网络结构如图2
图2 通信结构图
3 通信功能的实现
通信程序要实现S7-300向一个S7-200站发送7个字节的数据,然后接收并存储该S7-200返回的6个字节数据。S7-300发送的7个字节中,第1个字节是地址信息,第2、3、4字节是吸泥泵及刮泥桥控制数据信息,第5、6字节是1、2字节和3、4字节异或值,作为校验判断信息,第7位字节数据信息无意义,仅仅是为了触发一次S7-200的字符接收中断程序;S7-200向S7-300发送的6个字节中,第1个字节是S7-200的站地址信息,第2、3、4字节是吸泥泵及刮泥桥状态数据信息,第5、6字节为校验信息。
3.1 S7-300端通信程序
在自由口模式下,无论S7-200还是S7-300,通信协议完全由程序控制。CP340通过调用FB2 P_RCV来接收数据,调用FB3 P_SEND来发送数据。发送功能块FB3 P_SEND的参数REQ上升沿初始化发送请求,参数DB_NO指定发送数据块编号,参数DBB_NO是发送数据在参数DB_NO指定数据块中起始字节,LEN指定传输数据的字节长度;接收功能块FB2 P_RCV参数EN_R允许读数据,参数DB_NO指定接收数据块编号,参数DBB_NO是接收数据在参数DB_NO指定数据块中起始字节。
S7-300采用轮循方式与两S7-200通信,即第一秒内向1号站发送数据,然后接收1号站返回的数据(S7-200在接收到S7-300发送的数据后会立刻向S7-300发送数据);第二秒内向2号站发送数据,然后接收2号站返回的数据,不停地循环通信。S7-300通信程序流程如图3。
图3 S7-300通信程序流程图
S7-300通信程序详细介绍
AN M 30.0
L S5T#2S
SD T 1
A M 30.0
R T 1
L T 1
T MW 40
NOP 0
A T 1
= M 30.0
//设一2秒定时器,定时时间到自动进行下一次定时,当前值存入MW40
A(
L MW 40
L 102
》I
)
A(
L MW40
L 200
《I
)
= M30.1
// 定时器第一秒钟内,即102《MW40《200,M30.1为1
A(
L MW 40
L 2
》I
)
A(
L MW 40
L 100
《I
)
= M 30.2
//定时器第二秒钟内M30.2为1
A (
A M 30.1
JNB _001
L 0
T MW 34
SET
SAVE
CLR
_001: A BR
)
JNB _002
L 0
T MW 36
_002: NOP 0
// M30.1为1时,即定时器第一秒内,使MW34=0、MW36=0,作为起始字节值
A (
A M 30.2
JNB _003
L 8
T MW 34
SET
SAVE
CLR
_003: A BR
)
JNB _004
L 8
T MW 36
_004: NOP 0
// M30.2为1时,即定时器第二秒内,使MW34=8、MW36=8,作为起始字节值
O M 30.1
O M 30.2
= M 33.0
A M 33.0
= L 20.0
BLD 103
CALL “P_SEND” , DB19
REQ :=L20.0
R :=
LADDR :=320
DB_NO :=2
DBB_NO:=MW34
LEN :=7
DONE :=M50.1
ERROR :=M50.2
STATUS:=MW52
NOP 0
// 调用发送指令,当M30.1为1时(其上升沿初始化发送请求),即定时器第一秒内发送DB2.DBB0起始的7个字节,第一个字节为1站地址;当M30.2为1时(其上升沿初始化发送请求),即定时器第2秒内发送DB2.DBB8起始的7个字节,第一个字节为2站地址
A M 33.0
= L 20.0
BLD 103
CALL “P_RCV” , DB20
EN_R :=L20.0
R :=
LADDR :=320
DB_NO :=22
DBB_NO:=MW36
NDR :=M60.1
ERROR :=M60.2
LEN :=MW62
STATUS:=MW64
NOP 0
// 调用接收指令,当M30.1为1时(允许读数据),即定时器第一秒内接收1号S7-200站回传的6字节数据,存入DB22数据块中,起始字节为DB22.DBB0;当M30.2为1时,即定时器第2秒内接收2号S7-200站回传的6字节数据,存入DB22数据块中,起始字节为DB22.DBB8
3.2 S7-200端通信程序
S7-200 PLC程序分为主程序、子程序和中断程序,主程序完成控制和子程序调用功能,子程序完成通信口初始化功能,中断程序完成数据的接收和发送功能。发送数据采用发送指令XMT,接收数据采用逐字节接收方法,通信口接收每个字节都会暂存到特殊存储器SMB2中,并且产生中断,利用中断程序控制数据的接收。由于S7-200CPU的通信是建立在RS-485半双工通信硬件的基础上,接收和发送不能同时进行。通信中断程序要做到:接收指令不结束,就不能执行发送指令。
反映S7-200CPU工作方式的模式开关当前位置的特殊存储器位为SM0.7,它控制自由端口模式的进入。当模式开关处于TERM位置时,SM0.7为0;当模式开关处于RUN位置时,SM0.7为1。SMB30是自由口模式控制字节,用来设定校验方式、通信协议、波特率等通信参数(其各个位含义参阅相关手册),中断事件号8为端口0接收字符中断,中断事件号9为端口0发送完成中断。
当SM0.7为1时,调用子程序SBR_0设置SMB30,允许进行自由口通信;SM0.7为0时,调用子程序SBR_1重新设置SMB30,停止自由口通信,恢复PPI通信,便于用Micro/WIN软件对CPU运行状态进行监视。S7-200通信程序流程如图4
- 家居安防无线监控报警系统(04-02)
- 提高实时系统数据采集质量的研究(04-09)
- 基于MSP430及PROFIBUS的监测子站设计(06-12)
- LED开始成为街道照明应用的最佳选择(07-13)
- 一种变频调速系统的SVPWM控制设计(02-03)
- 智能路灯控制系统设计与应用研究(03-24)
