西门子重庆授权代理商
种以太网通讯方案
该配置都是目前比较流行的方案,其优点是通讯速度快(10M),可靠性高,抗干扰能力强,在数据通讯中如过校验出错或丢帧,则ETH-MPI转换器(或触摸屏)每10毫秒重发一次(长持续3秒),直到对方应答为止,如3秒后还未收到应答,则通讯重新初始化。
使用的都是成熟的产品,无风险,由于光纤专用的Profibus电缆,整体费用并不高,如果能与工程中其它设备共用光纤电缆(多芯光纤)则整体成本将更低。
成本计算:
ETH-MPI 585元
单模光纤收发器 700元
光纤(1公里) 2.5*1000=2500元
总计=585+700*2+2500=4485元
第二种方案:Profibus+PC_adapter
该配置通讯速度慢(由于受制于RS232电缆及PC adapter,串口侧通讯波特率一般为38400,19200)
抗干扰能力弱(因为RS485的两端对地电位不能超过2。3伏),在数据通讯中如过校验出错或丢帧,PC adapter一般重发三次,如还不能正确接收,则通讯重新初始化。
成本计算:
PC adapter(国产型)380元
Profibus电缆(1公里) 5*1000=5000元
总计=380+5000=5380元
结论:在长距离通讯中(一公里以上)ETH-MPI转换器全面优于PC adapter
有一个控制运动的方案,控制的点数较少,没有用到PLC的主机,只是单独用到定位模块FX2N-20GM,而又想联接触摸屏修改一些参数,这样的方案能否实现?
现将定位模块FX2N-10GM/20GM与触摸屏直接联接如下:
三菱FX系列中的定位模块FX2N-10GM/20GM可以作为特殊模块扩展到FX系列PLC右侧,也可以单独使用控制伺服、步进电机等运动。
在实际工程中,一个控制系统可以联接上触摸屏,当FX2N-10GM/20GM可以作为特殊模块扩展到FX系列PLC右侧时可以将触摸屏联接到PLC上,但当FX2N-10GM/20GM单独使用时是否可以联接触摸屏呢?如果可以是那些触摸屏可以联接、用什么方式联接呢?
目前三菱的触摸屏使用较多的有F900系列、A900系列、GT11系列、GT15系列,在三菱触摸屏手册《GOT-F900系列图形操作终端硬件手册(接线篇)》中有明确说明GOT-F900系列触摸屏可以联接到FX系列定位单元内置的422接口上,F930/940的联接电缆为FX-50DU-CAB0,同样在触摸屏的编程软件GT-Designer中当选择F930/940的型号时,在选择联接的PLC类型时会出现FX2N-10GM/20GM的选择项。
500)this.bbbbb=500"border=0>
而作为F900系列触摸屏的替代产品GT11触摸屏却没有直接联接定位模块FX2N-10GM/20GM的功能,在GT1000的触摸屏英文版联接手册中没有与FX2N-10GM/20GM联接的介绍,同样在编程软件中如果选择了GT11中的几款触摸屏,在选择PLC类型时不会出现FX2N-10GM/20GM的选项。
在实际工程中控制系统如果只有定位模块FX2N-10GM/20GM,并且要求联接触摸屏时,可以选择F900系列的触摸屏,如F930或是F940
随着可编程控制器(PLC)技术的迅速发展,PLC在我国各个工业控制领域中得到了越来越广泛的应用。而西门子公司生产的S7-200系列小型PLC,以其功能强人,使用稳定且而在中国市场上占有很重要的地位,其内部集成的通信接口为用户提供了强大的通信功能,根据不同的协议通过接口使得PLC可与不同的设备进行通信并组成网络,实现数据传送及控制等功能。S7-200系列PLC支持自由口协议,它为用户在使用时,提供了很多方便之处。本文主要研究的是在VB6.0环境下S7-200PLC与PC机自由口通信的实现,并结合安全阀检测控制系统的开发实例加以说明。
1.系统硬件组成
图1蝶阀监测系统原理示意图
系统主要由工控机、PLC、打印机和电气控制柜等组成,如图1所示。为了提高控制系统的可靠性与灵活性,系统采用PLC可编程逻辑控制器。PLC选型为SIEMENS公司的S7-200系列PLC,中央处理单元为西门子公司推出的PLC采用S7-200系列CPU226,该CPU在本机体中集成了2个RS-485通讯口,其,满足本系统的所有要求。
使用485总线的一端连接PLC的通讯口PORT1,另一端通过RS-485/232电平转换器连接至PC机的RS-232串口,实现PC机向PLC发送命令帧、并接收PLC响应帧。
系统共有6个台位,共有12个传感器,其开关量控制点数有限需要扩展模块EM221和EM231。
2.控制的内容和要求
系统采用集散控制,工控机为上位机主要负责监控和管理功能:如数据的处理、与PLC通讯、误差修正等。PLC为下位机也是控制的核心,通过RS485接口与工控机相连。把发送信息输入到上位机,上位机向PLC发送发放的数据和指令。PLC接受上位机的信息并响应,实时控制电磁阀的打开合关闭,实时采集监测压力,并把每一路状态的相关数据反馈到上位机,由管理程序生成数据库,可对数据进行统计、报表、打印等。
本控制系统设计任务需要实现以下目标:
(1)可以监控蝶阀腔体内压力的变化,可以人工设定并自动控腔内压力值。
(2)可以通过自动方式和手动方式控制该系统。
(3)现场显示界面显示的内容主要包括:当压力值、当前的检测状态、实时故障报警和历史故障报警等。
(4)通讯采用RS-485总线通讯方式,使PLC与远程PC机联系,实现通过PC机控制电磁阀的开关,来压力大小目的。PC机与其他系统发生联系,进而使工厂整个生产过程构成了一个有机的整体。
3PC机与PLC通信基础
3.1PLC自由口通信命令
所谓自由口通信模式即Freeport模式,它是建立在RS一485硬件基础上的一种通讯方式,它允许用户自己定义一些简单、基本的通讯协议设置,如数据长度、奇偶校验等等,通讯功能完全由用户程序控制[1]。自由口模式使用的相关的命令为XMT和RCV命令[2],分别用于发送和接收数据。这两个命令都对应各自的一个数据缓冲区,该缓冲区可以由用户在编程中决定,如VB100,即为从VBl00起始的一块数据存储区。其中,XMT的缓冲区格式如图2
图2 RCV 的缓冲区格式为
但应当注意的是,自由口协议必须在PLC处于RUN 模式下才有效,如果处于STOP模式下PLC会自动的回到PPI模式(前提是使用PPI模式) 。
3.2 Mscomm 控件
为了实现PC 机与下位机PLC 之间的通信,bbbbbbs 提供了Mscomm控件以供用户使用。它封装了关于通信的相关内容,我们只需在Ⅷ平台中,设置其相关属性,并且对其的事什进行相应的编程即可使用。关于Mscomm控件的一些重要属性见表1。
关于Mscomm控件的事件,只有一种,即OnComm事件,通信中只要有错误或事件发生时,就会产生OnComm事件,而CommEvent属性传回不同的错误或事件:
表1 Mscomm控件属性
对应的数码值,据此可对事件进行处理。在本文的通信过程中,主要用到的是ComEvReceive值。当接收缓冲区有数据时产生该值,对bbbbb值进行相应的处理。
4.VB6.0平台PC机与PLC的通信
Microsoft公司生产的Visual Basic6.0是bbbbbbs环境下的一种可视化编程语言开发系统,它以强大的图形设计能力,简易的编程语言和容易学习使用等优点在工程中得到了广泛的应用,我们正是使用它进行了与PLC通讯的开发。
PLC I/O分配表见表2,只列出了4个台位的。,结合工程的实际,我们编制了相应的PLC通信程序。由于篇幅有限,只列出部分程序。但在编程中需要注意的是,程序中与通讯有关的除了进行相关寄存器的设置之外,还应该对接受的命令进行判断,己选择运行相关的程序。由于PLC中的通讯口是RS—485通讯口,其为半双上通讯口,XMT 和RCV 命令不能运行。
表2 I/O分配表
PLC的中断程序
LDB= SMB86, 16#20
LPS
MOVB 10, SMB34
ATCH INT1, 10
AB= ‘K‘, VB301
AB= ‘C‘, VB302
AB= ‘0‘, VB303
S Q0.0, 1
LRD
AB= ‘G‘, VB301
AB= ‘C‘, VB302
AB= ‘0‘, VB303
R Q0.0, 1
LRD
AB= ‘K‘, VB301
AB= ‘P‘, VB302
AB= ‘0‘, VB303
S Q0.1, 1
LRD
AB= ‘G‘, VB301
AB= ‘P‘, VB302
AB= ‘0‘, VB303
R Q0.1, 1
LPP
NOT
RCV VB300, 0
5 VB通信程序设计
VisualBasic 开发包括界面的设计和程序的开发两部分。
5.1 人机界面设计
人机界面使用户与计算机之间的中介,是软件产品的窗口。人机界面考虑的是如何能更好的满足用户的使用要求和操作习惯。人机界面的设计要考虑界面功能的全面和操作的简便。常用的功能要尽量安排在主界面中,如果有多个功能模块,可以将先对独立的模块用单独的界面表示,并与主界面双向连接。如图3
本系统界面包括状态的监控、身份登陆、参数设定、报表查询、打印、报警和事件显示。
图3 人机界面
安全阀气密性检测控制系统 ,VB通讯界面设计时, Mscomm 控件的重要属性设置为:
bbbbbMode 属性:comlnputModeBinary,按二进制方式读取数据,因为从PLC返回的数据中包括ASCII码值超过128 的字节。
Settings 属性:9600,n,8,1,选择9600bps波特率,不进行奇偶校验,8位数据位,1位停止位,其设置要与PLC的设置一样,才能正常通信。
RThreshold 属性:1,当接收到1个字符时,引发OnComm事件的ComEvReceive 常数。
5.2 通信程序设计
VB通信中接收事件的程序清单如下
If MSComm1.CommEvent = comEvReceive Then
S1 = MSComm1.bbbbb
If (S1 = Chr(&H1B)) And (Len(SCOMS) > 5) Then
SCOMS = ""
Else
If S1 <> Chr(&HD) Then
SCOMS = SCOMS & S1
Else
Call MYSAVE(SCOMS)
End If
End If
End If
VB通信中分配变量
SCOMS = Trim(SCOMS) ‘接收到20个字段
SCOMS = Right(SCOMS, 20)
vh5 = Trim(Mid(SCOMS, 8, 4)) ‘压力值的存放(字符串)
yld1 = CCLng(vh5)
vh6 = Trim(Mid(SCOMS, 12, 1)) ‘自动信号
zdd1 = vh6
vh7 = Trim(Mid(SCOMS, 13, 1)) ‘充气信号
cqd1 = CCLng(vh7)
vh8 = Trim(Mid(SCOMS, 14, 1)) ‘排气信号