PLC品牌不限,PC端组态软件不限,写出PLC与PC间的通讯方式、通讯模块(卡)硬件参数,通讯程序及模块(卡)端口设置。
需通讯内容:读位信号,100个;写位信号,50个;读数据(字),50个;写数据,20个。
工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
关于PLC与PC间的通讯有很多种,最常见的就是串口和以太网。如果PLC集成以太网或者扩展了以太网,使用以太网的方式与PC机通讯就是经济、快速的通讯方式。下面就是用以太网的方式实现组态软件与PLC之间的通讯。
PLC仍然选用集成以太网接口的ABB AC500系列,组态软件使用国产组态软件MCGS。通讯协议使用Modbus-TCP。由于使用以太网,所以无须额外通讯卡件,PC机只要集成同样的网卡即可。
一、PLC组态
1、CPU,使用AC500 PM582-ETH
可编程序控制器(PLC)是以计算机技术为核心的通用自动控制装置,由于其体积小、使用灵活、 价格相对较低的特点,在工业生产中得到了广泛的应用。西门子公司的S7-200系列小型PLC的功能强、性能价格比高,在国内更是应用广泛。在工业控制过程中,常常需要用一台上位机去控制多台PLC,实现分散控制与集中管理,以构成分布式控制系统。
PC端利用MSComm控件、在S7-200PLC端利用自由口通讯,实现他们之间的信息交换,以构成一个简单的分布式控制系统。
1) S7200系列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个字符,具体的格式如下:
X Y F X X X V R
其中,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之间的硬件连接。
2)自由口通讯的实现
在实现自由口通讯的软件设计中,主要包括PC软件与PLC梯形图2部分,下面分别给出主要的源程序代码。
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事件,在这个事件中,将接收到的数据按照数据帧的定义解释数据,进行相应的操作。