• 西门子5SL4225-6CC
  • 西门子5SL4225-6CC
  • 西门子5SL4225-6CC

产品描述

产品规格模块式包装说明全新品牌西门值+ 包装说明 全新 - 产品规格子

5SL4225-6CC


通讯参数设置和通讯测试界面

在供水自动化监控系统中,信息管理及软件作为处理、显示和存储数据的核心,主要负责对各个电动机的转速和各处管道压力的查询、监控以及报警的处理。运行信息管理及软件的计算机与PLC之间的通讯主要是通过RS-232C串行接口(PC机一般提供了COM1和COM2两个串行口)进行通讯,实现系统的监测控制和信息管理功能。

  本系统中上位机的信息管理及软件运行在Windows2000/NT操作系统下,串行通讯程序运用Inprise公司推出的快速开发工具Delphi 6.0开发。PPI通信协议是西门子专为S7-200系列PLC开发的一个通信协议,物理上采用RS485信号电平,PLC默认处于该方式。使用PPI方式对PLC编程及调试监控,其硬件连接只需通过编程(PC/PPI)电缆即可实现。软件编程采用中文环境、内部系统协议,设计只需通过软件设置一下参数,数据如交换不需要考虑,用NETR和NETW 两条语句即可进行数据的传递。

 

1.2.1通讯参数设置

为了进行串口通信, 实现系统的监测控制和信息管理功能,必须对通讯参数加以设置。

通信设置:

串口:COM1、COM2

波特率:300、600、1200...

校验方法:N、E、M、O、S

数据位数

停止位数:

Setting:

缓冲区设置

接收缓冲区:字节

发送缓冲区:字节

数据传送方式

文本形式和二进制形式

流控制

不握手(默认)、XON/XOFF方式、

RTS/CTS方式、 XON/XOFF AND RTS/CTS方式

 

1.2.2通讯测试界面

通信测试界面如图4-5所示。

通讯设置

Setting属性值       

commport属性值 

通讯状态    

串口状态

发送字节数

接收字节数

数据显示

接收数据显示

发送数据显示

 

1.3 PLC通信程序设计

1.3.1 PLC网络通信协议[19]

本系统采用的PLC是德国SIEMENS公司生产的S7-200系列,主模块采用CPU226,扩展模块采用数字量扩展模块EM222和模拟量扩展模块EM235。

S7-200系列CPU具有强大的通信能力。主要支持以下几种协议:

1.PI(Point-to-Point)协议,即点到点接口协议。PPI是一个主/从协议,主站(其它CPU或SIMATIC编程器)给从站发送申请,从站进行响应。从站不初始化信息,只响应主站的申请或查询。如果在用户程序中允许PPI主站模式,S7-200 CPU在RUN模式下可以作为主站,还可以利用网络读(NETR)和网络写(NETW)指令读写其他CPU,同时也能够作为从站响应来自其它主站的申请。采用PPI协议的网络中较多只能有32个主站。该协议主要是用来编程、PPI组网等

2.MPI(Multi-Point)协议,即多点接口协议。MPI可以是主/主协议或主/从协议,协议如何操作依赖于设备类型(设备是S7-200系列CPU时建立主/从连接)。MPI总在两个相互通信的设备之间建立连接,其它主站不能干涉两个设备之间已建立的连接。由于S7-200的连接是非公用的,并且需要CPU中的资源,每个S7-200 CPU只能支持4个连接,每个EM277模块支持6个连接。在使用时,每个S7-200 CPU和EM277模块保留两个连接,分别用于连接SIMATIC编程器(或计算机)以及操作面板。这些保留连接不能被其它类型的主站使用。

3.ROFIBUS协议。PROFIBUS协议设计用于分布式I/O设备(远程I/O)的高速通信。PROFIBUS网络通常有一个主站和几个I/O从站,主站配置成知道所连接的I/O从站的型号和地址。主站初始化网络并核对网络上的从站设备和配置中的是否匹配。主站连续的把输出数据写到从站并从它们读取输入数据。

4.户自定义协议(自由口协议)。自由口协议可以由用户定义通讯协议,通过用户程序控制S7-200通信口的操作模式,将CPU与任意通讯协议公开的设备联网,如上位计算机、打印机、变频器等。用户程序通过使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)来控制通信口的操作。在自由口模式下,通信协议完全由用户程序控制。用户程序通过设置SMB30(0口)允许自由口模式,而且只有在CPU处于RUN模式时才能允许。当CPU处于STOP模式时,自由口通信停止,通信口转换成正常的PPI协议操作。

可以利用PC/PPI电缆和自由口通信功能把S7-200 CPU连接到许多和RS-232标准兼容的设备。PC/PPI电缆支持波特率设置,利用PC/PPI电缆盒上的DIP开关可以配置所需的波特率。波特率和开关位置的对应关系如表4-6所示:

表4-6 波特率和开关位置对应表

波特率

38400

19200

9600

4800

2400

1200

600

300

开关(1=上)

000

001

010

011

100

101

110

111

当数据从RS-232传送到RS-485口时,PC/PPI电缆是发送模式。当数据从RS-485传送到RS-232口时,PC/PPI电缆是接收模式。当检测到RS-232的发送线有字符时,电缆立即从接收模式转换到发送模式。当RS-232发送线处于闲置的时间**过电缆切换时间时,电缆又切换到接收模式。这个时间与电缆上的DIP开关设定的波特率选择有关,如表4-7所示:

表4-7 PC/PPI电缆转换时间(发送模式到接收模式)

波   特   率

38400

19200

9600

4800

2400

1200

600

转换时间(ms)

0.5

1

2

4

7

14

28

在使用自由口的系统中使用PC/PPI电缆时,必须在S7-200 CPU的用户程序中包含转换时间。S7-200 CPU在接收到RS-232设备的申请信息后,S7-200 CPU的发送信息响应必须延迟**过或等于电缆的切换时间。RS-232设备在接收到RS-232设备的申请信息后,S7-200 CPU的下一次申请信息的发出必须延迟**过或等于电缆的切换时间。在以上两种情况中,需要通过延迟使PC/PPI电缆有足够的时间从发送模式切换到接收模式,以便于数据从RS-485口传送到RS-232口。

 

1.3.2 PLC通信程序设计

PLC作为控制系统中的下位机,不主动发送数据而是被动的响应上位机的命令,根据上位机的指令进行数据发送和接收。PLC中的通信程序由主程序、三个子程序和三个中断组成,通信程序的流程如图4-4所示。

1、主程序

PLC在**次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,使端口处于接收状态。RCV指令将接收到的数据保存到接收缓冲区,同时产生接收完成中断。PLC每接收到一条指令后都会发送一条反馈信息,发送完成后产生发送完成中断。程序中使用的标志位含义约定如下:

M0.0:BCC校验正确则置位;

M0.1:Verify子程序的触发条件,被置位表示进行BCC校验。

 

 

 

    //主程序

LD            SM0.1

CALL          Init

LDB=          VB117, VB150     //接收数据

AB=           VB103, 16#05

A             M0.0

CALL          Recv

LDB=          VB117, VB150    //发送数据

AB=           VB103, 16#06

A             M0.0

CALL          Send

LD            M0.1           //校验

CALL          Verify

LD            SM4.5

RCV           VB100, 0

2、通信初始化子程序(Init)

本系统采用自由口通信,通信协议为自定义的。用户可以通过设置PLC中相应的特殊寄存器SMB30等的参数改变485口的波特率、数据格式(数据位数、停止位、校验),以适应不同的通讯协议。PLC采用了特殊存储器(SM)标志位,提供大量的状态和控制功能,并且能够使CPU和用户程序之间交换信息。

SMB30和SMB130是自由端口控制寄存器。SMB30控制自由端口0的通信方式,SMB130控制自由端口1的通信方式。这两个寄存器是用来设置自由端口通信的操作方式,并提供自由端口或者系统所支持的协议之间的选择。Pp用于校验选择,00和10表示不校验,01表示奇校验,11表示偶校验。d用于*每个字符的数据位,0表示8位字符,1表示7位字符。bbb用于选择自由口通信的波特率,其含义同表4-2。mm用于协议选择,00表示PPI/从站模式,01表示自由口协议,10表示PPI/主站模式,11保留不用。

SMB87或SMB187用于控制接收信息的标志;SMB88或SMB188用于*开始的信息字符;SMB88或SMB188用于*结束的信息字符。SMB94或SMB194用于*端口0或端口1接收字符的较大个数(1~255Byte)。该区要设为需要的较大缓冲区,否则可能会丢失信息。

本系统采用端口0,自由口方式通信,波特率为9600Kbps,发送数据的较大长度为16。因此SMB30的值为09H(十六进制),SMB87的值为ECH(十六进制),SMB94的值为16。当PLC的工作模式开关处于“RUN”(SM0.7=1)时初始化通信端口,初始化完毕打开接收数据中

泵机组进行监控,监控程序程序的功能包括水位、水压、电机速度信号的采集;监测显示水泵机组的工作状态和运行情况;检测故障信号,进行报警及语言提示;相关数据的存储、动态实时报表、历史数据的随时查询、打印;根据现场工作情况发出控制指令给PLC实行水泵机组的切换;根据生产实际情况修改工作参数等等。系统软件采用Delphi高级语言编程,能够及时准确地对供水自动化生产实行监控。串行通信作为上位机和下位机联系的桥梁,因此上位机通信模块设计在整个监控程序占有非常重要的地位。

用Delphi实现串口通信,较常用的办法是使用控件(如MSCOMM等),利用MSCOMM控件开发串口通信程序,只需设置相关的属性,使用相关的方法与相应的事件,实现串口通信较为简单方便。本系统中上位机的信息管理及软件运行在Windows2000/NT操作系统下,并利用MSCOMM控件开发设计了上位机与PLC的串行通信程序,对供水系统的运行状态进行监控。MSComm32控件的主要属性、方法及事件如下[6-8]:

CommPort属性:用于设置或返回通讯端口号。计算机的串行通讯端口一般有COM1和COM2两个,必须在打开端口以前设置该属性。如果设置的端口不存在,运行时会产生设备无效错误。

CommEvent属性:返回通信事件或错误。

Setting属性:设置并返回初始化参数,即波特率、奇偶校验、传输数据位和停止位。

InputMode属性:设置或返回接收到的数据的类型。缺省为ComInputModeText表示以文本(ASCII码)形式接收数据,而ComInputModeBinary表示以二进制形式接收数据。

Input属性:返回并删除接收缓冲区中的数据,在设计时Output属性:向输出缓冲区中写入数据,在设计时无效,运行时为只读。

Output属性:向输出缓冲区中写入数据,在设计时无效,运行时为只读。

PortOpen属性:设置并返回通信端口开或关的状态,运行时有效。

CommInit方法:初始化并打开*的串口。

RecvData方法:接收数据。

SendData方法:发送数据。

ComOpenOrClose方法:打开或关闭串口。

OnComm事件:当CommEvent属性的值发生变化时,就产生此事件,标志发生了一个通信事件或错误。

通信模块作为上位机和PLC交换数据的平台,具有十分重要的作用。通信模块的设计主要包括几个方面:

1、串口初始化。串口初始化包括设置通信协议、输入输出缓冲区大小等内容。

2、数据的接收和发送以及校验。上位机首先发出命令给PLC,PLC从串口输出缓冲区内接收数据,然后PLC自动发送一个响应帧,上位机检测到输入缓冲区的数据开始接收数据。命令帧的格式为站号、读/写操作类型、发送数据、校验码、结束字符。响应帧的格式为站号、接收数据、校验码、结束字符。为了保证通信数据的正确性,上位机对接收到的数据需要进行校验,校验是通过一个BCC校验函数来进行。BCC校验码就是将要传送的字符串的ASCII码以字节为单位作异或运算,并将异或运算结果作为指令的一部分传送出去。

3、数据转换。由于PLC在发送数据时,有些模拟量数据,如管网压力和电机转速,采用的是二进制的形式,在计算机接受到数据之后必须进行转换,方能正确显示。

4、错误处理和报警。对于传输过程中可能出现的各种错误,需要采取相应的处理措施,不可恢复的严重错误必须报警。

通信模块中的部分事件源代码如下:

//串口初始化



http://zhangqueena.b2b168.com

产品推荐