一、S7-200系列PLC的自由口通讯方式 (西门子PLC系列)
S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)等。PPI等通讯协议主要用于西门子系列产品之间的通讯。自由口通讯可由用户控制串行通讯接口,实现用户自定义的通讯协议。在自由口通讯方式下,用户利用梯形图程序中的接收完成中断、字符接收中断、发送完成中断、发送指令和接收指令实现S7-200系列PLC与上位机的通信。在PLC与PC的通讯方式上,自由口通讯是一种廉价和灵活的方法。
PLC的CPU处于STOP模式时,自由口通讯被禁止,只有当CPU处于RUN模式时,才可使用自由口通讯。在此,可以用反映CPU模块上的工作方式的特殊存储器位SM0.7来控制自由口方式的进入。当SM0.7为1 时,CPU处于RUN模式,可选择自由口通讯。通过向SMB30或SMB130(SMB30用于设置端口0,而SMB130用于设置端口1)的协议选择域置1,可以将通信端口置为自由口模式。SMB30或SMB130还用于设置通讯的波特率、奇偶校验与每个字符的数据位。发送指令XMT启动自由端口模式下数据缓冲区中的数据发送,它可以方便地发送1~255个字符,如果有中断程序连接到发送结束事件上,在发送完成后,端口0会产生中断事件9,也可以监视发送完成状态位SM45的变化,接收指令RCV可以初始化接收信息服务,通过指定的通信端口,接收信息并存储在数据缓冲区内。在接收完***后一个字符时,端口0产生中断事件23。
在PC与PLC的通讯中,主要是利用PC机发送信息来强制控制PLC的状态,接收PLC发送过来的信息,来显示控制状态。所以在本文中,PLC发送信息通过检验SM4.5来每半分钟发送有关PLC状态的信息,以使PC机更新显示,利用接收完成中断,按照PC机发送的信息要求来强制存储器有关位置的状态。每个数据帧为8个字符,具体的格式如下:
其中,YY为PLC地址;F为存储器类型,如位存储器为M,变量存储器为V;XXX为位地址,如M017就表示M1.7;V为位设置的值,可为0或1;R为校验位。
S7-200CPU上的通信口是与RS485兼容的9针D型连接器,PLC还提供了实现RS485与PC机上RS232C相连接的PC/PPI电缆,利用它可以方便地实现S7-200系列PLC与PC之间的硬件连接。
二、自由口通讯的实现
在实现自由口通讯的软件设计中,主要包括PC软件与PLC梯形图2部分,下面分别给出主要的源程序代码。
1、PC机的通信软件实现
本文是利用Delphi来实现PC机的通讯的。Delphi是新一代可视化开发工具,它具有功能强大、简便易用和代码执行速度快等特点,是全球公认的快速应用开发工具的先驱者,在构架企业信息系统方面发挥着重要作用。但由于Delphi中没有串口控件可用,所以首先需要把ActiveX控件MSComm加到元件选项板上。并设置MSComm控件的属性,其主要属性如下:
CommPort:设置并返回通讯的端口号。设为1。
Setting:以字符串的形式设置并返回波特率。设为19 200,n,8,1。
PortOpen:设置并返回通讯端口的状态。
Input:从接收缓冲区读取数据。
Output:从发送缓冲区发送数据。
InputMode:设置从级冲区读取数据的格式。
Rthreshold:接收缓冲区接收多少字符触发OnComm事件。设为8。
在向PLC发送数据命令时,利用定义好的数据帧格式,组织好数据,用文本方式发送。接收PLC数据时,触发Oncomm事件,在这个事件中,将接收到的数据按照数据帧的定义解释数据,进行相应的操作。
下面是计算机的部分程序:
2、PLC的部分通讯程序
三、结论
本文利用MSComm控件成功地实现了PC机与PLC之间的自由口通讯。实验结果表明:本方法无论是在系统的实时性、可靠性,还是在灵活性上均获得了令人满意的效果。
- 下一篇:西门子电磁式继电器结构与工作原理
- 上一篇:西门子软件冗余的原理和配置