西门子模块6ES7512-1SK01-0AB0参数详细
西门子模块6ES7512-1SK01-0AB0参数详细
1 引言
随着计算机控制技术的快速发展,计算机图形显示在工业自动化控制系统中得到了广泛的应用,除应用组态软件外,还可应用如vb、vc、delphi等计算机语言开发监控程序。由于visual basic提供了开发 microsoft bbbbbbs(r)应用程序的迅速、简捷的方法,开发语言具有简洁明了、易学易用、编程语言和我们通常使用的自然语言相差不大、编程效率高、开发周期短的特点,已经成为了工业控制领域非常流行的开发语言。
90年代中期,我们在开始使用工业计算机(industrial personal computer即ipc)以及可编程序控制器(programmable controller,简称为plc)作为光纤、光缆设备控制核心的时候,先后采用微艾可视组态、组态王等组态软件开发平台,研制出了各种光纤、光缆生产线计算机控制系统程序。这些组态软件的采用,不仅缩短了监控软件的开发周期,也提高了其运行的可靠性。然而,由于监控软件都不能脱离组态软件独立运行,要保证监控软件的正常运行,需要购买相应的软件加密狗,使用成本较高;对于一些简单的设备控制系统来说,组态软件又有许多功能用不上,造成浪费;同时,组态软件的本身也还存在不足之处,不能满足使用的一些特殊硬件驱动的要求,需要自行编制硬件驱动与组态软件,通过dde进行数据交换。因此,项目开始在通过使用vb开发sg03束管生产线计算机控制系统监控程序方面,进行了尝试。
2 控制系统设计
2.1 系统总体
图1所示的是sg03束管挤出生产线计算机控制系统框图,上位机pc采用工业计算机,下位机是采用omron公司生产的c200he可编程序控制器,上、下位机之间通过rs232c进行串行通讯。上位机用于参数设置和显示,较为复杂的运算也是由pc来完成,但不直接参与控制,直接参与控制和检测的是plc。plc实现开关量、模拟量的输入和输出;plc在进行生产线过程控制的同时,将采集到的生产线运行状态等信息经rs232c串行口送到上位机,由上位机来实现生产线的实时参数和状态信息显示;同时,部分智能仪表如线径检测仪、温控仪还可以通过串行通讯(rs232c/rs485),将本身的运行状态传递给上位机,通过上位机设定仪表参数,从而实现仪表的智能控制。由于采用pc+plc的控制模式,计算机的故障或非正常关闭将不会导致整条生产线停止运行,生产线仍按计算机后发送的生产参数继续运行。
图1 控制系统框图
监控软件要求在bbbbbbs9x环境下运行,集测控、显示、管理于一体,通过plc以及智能仪表在设备运行过程中实时进行数据采集、生产控制,从而实现生产线的启动、升速、降速与自动运行;挤出稳定、可靠;束管直径均匀、光滑、速度高,余长控制精度高,并且采用友好的图形用户界面(gui),用户使用方便。
2.2 监控软件的基本结构
使用vb编制出的监控软件,可分为在前台运行的操作显示界面部分,在后台运行的数据采集及处理部分。数据采集程序通过通讯口(rs232/rs485)对plc以及智能仪表按相应的通讯协议进行通讯,达到数据输入和控制参数的输出功能;操作显示界面程序则通过与数据采集及处理程序共享数据单元方式,得到实时采集的数据经过处理后在屏幕上加以显示,软件结构如图2所示。
图2 监控软件结构示意
2.3 操作显示界面设计
顾名思义,visual basic的“visual”指的是指利用可视化的方法开发图形用户界面。我们在设计作为用户可与应用程序进行交互操作、可视的程序界面时,窗体和控件的使用――将作为创建界面的基本构造模块,使我们不需要编写大量代码去描述界面各组成元素的外观和位置,而只要按照实际生产工艺的需要,把诸如label、textbox、frame、image、timer、commandbutton等常用内部控件或者类似mscomm等activex控件拖放到屏幕上的一点即可,这样以搭积木的方式即可实现监控软件可视运行界面的设计工作。然后为界面中的各个对象,按照程序设计流程图,由属性定义其外观、由方法定义其行为、编写出响应事件的 visual basic 代码,这样就能初步设计出满足人机交互功能需要的应用程序可视界面。
对于sg03束管生产线计算机控制系统监控程序的操作界面而言,主要由软件版权页、用户登录、主操作、辅助电机操作、系统运行状态以及生产维护等界面组成(参见图3~图8)。
图3 软件版权页
图4 用户登录界面
图5 主操作界面
图6 辅助电机操作界面
图7 系统运行状态界面
图8 生产维护界面
这些界面按照可视界面流程框图(参见图9)中的各种功能编制vb代码后,初步运行后可互相切换,实现人机交互功能。在程序编制的过程中,值得注意的是必须充分考虑到软件各种的运行条件,以及各种可能出现错误的处理。
图9 可视界面流程框图
例如,监控软件运行后,在用户登录窗口,软件将自动检查在可执行文件所在的目录(c:\program files\sg03或系统配置文件sg03.ini文件中指定的目录)中的各种数据文件的完整性、外部串行通讯设备(可编程序控制器、线径检测仪等智能仪表)联机状况等,并给出相应的提示(图10)。
图10 软件运行错误示意
如果出现诸如plc通讯错误(参见图10)等严重警告时,监控软件由于不能正确与下位机进行连接,失去基本的运行条件,经过用户确认后,软件将自动退出运行状态;用户必须在仔细检查系统文件或设备后,方可再次运行监控软件。
这样,利用vb编程的方式,就可以实现诸如软件注册、用户登录检查、界面切换、数据输入、数据显示、数据记录、参数修正、电机启动、停止、报警处理等各种人机交互功能。
3 数据采集与处理程序设计
友好的人机交互界面是监控软件编制过程中所要追求的一个方面,而作为软件核心的是其数据采集与处理部分。在sg03束管生产线监控软件中,可与ipc进行串行通讯的有作为下位机的plc以及可显示产品外径的英国beta公司测径仪等智能仪表。
3.1 与plc的通讯
c200he是omron公司在c200h的基础上推出的一种新型中大规模的plc,其中一个主要的特点就是在cpu单元上内置了rs-232连接器,可方便地和外部设备进行串行通讯。监控软件在设计采用主从通讯方式,上位机ipc始终具有通讯传输优先权,所有的通讯由上位机来启动,c200he总是处于应答的被动状态。plc与上位机的数据通讯是以“帧”为单位进行的,帧的格式如图11、12所示,命令帧由上位机发送给plc,应答帧为plc接收到命令帧后自动向上位机发送的应答信号。
图11 命令帧
图12 应答帧
其中,“@”为起始符号;节点号为plc的编号(00-31),对于单plc的控制系统默认为00;识别码说明帧的功能;fcs为帧的检查顺序,用来检查帧的传送时是否存在数据错误;*和cr为终止符,表明帧结束。
通讯程序的设计可利用vb提供的具有完善的串口数据发送和接受功能的通讯控件mscomm,实现与plc的串行通讯功能。利用它可屏蔽对计算机底层硬件的操作,只需设置、监视其属性和事件,即可简易、快捷地完成对串行口的初始化和数据的传输工作。
下面的代码是软件运行到用户登录界面时,检测plc是否出于正常的联机通讯状态时的程序,我们可利用c200he通讯测试指令“ts”,利用放在用户登录界面上的mscomm通讯控件,采用轮询方式从上位机发送一个测试数据块,如测试顺利,下位机c200he收到后,返传测试命令中规定的字符,内容不改变,这样就可判断plc是否出于正常的联机通讯状态。要注意的是在plc与上位机通信程序代码编制之前,首先要对rs232通讯端口进行初始化,使两者按相同的格式通讯。初始化参数包括波特率、起始位、数据位、停止位和奇偶校验等。c200he一般设置为9600bps、1个起始位、7个数据位、2个停止位、偶校验。
以下为plc联机状态测试代码部分:
mscomm1.commport = plccomport ‘由配置文件指定的通讯端口号
mscomm1.settings = plccomsetting ‘由配置文件指定的初始化参数,一般为"9600,e,7,2"
mscomm1.bbbbblen = 0
if not mscomm1.portopen then ‘实现串口开闭检测,打开并初始化串口
mscomm1.portopen = true
end if
‘例如在检测plc是否处于联机状态时,发送ts通讯指令以及测试数据块,并等待接受返传的数据
testcomtemp = "@00tsffff" + fcsomroncheck("@00tsffff") + "*" + chr(13)
mscomm1.output = testcomtemp
starttime = timer
do
if timer > starttime + 5 then exit do
loop until mscomm1.inbuffercount >= 11
testcomtempbbbbbbbbbbb = mscomm1.bbbbb
‘关闭串口
if mscomm1.portopen then
mscomm1.portopen = false
end if
‘通讯错误处理
if testcomtemp<>testcomtemp bbbbbbbbbbb then
response = msgbox("请检查后重新运行监控软件!", vbokonly + vbexclamation, "plc通讯错误!")
if response=vbok then cmdcancel = true: exit sub
end if
函数fcsomroncheck
public function fcsomroncheck(bbbegram) as bbbbbb
`校验值的计算
dim fcs_length as integer
dim qq as integer
fcs_length = len(bbbegram)
qq = 0
for i = 1 to fcs_length
qq = asc(mid$(bbbegram, i, 1)) xor qq
next i
fcsomroncheck = hex$(qq)
end function
类似地,我们可按图13所示的通讯流程图编制程序代码,通过timer控件的使用定时发送rd(读plc的dm数据区)、wd(写plc的dm数据区)、rr(读plc的ir/sr区)、wr(写plc的ir/sr区)等命令,从而使ipc自动完成与p lc的数据交换过程
图13 与plc通讯流程图
3.2 与智能仪表的通讯
与plc通讯编程相类似,我们在编制智能仪表的通讯代码时,也要参考仪表的通讯协议。例如我们在生产过程中要采集英国beta线径检测仪检测的产品外径,只要通过mscomm控件简单的输出“a”和回车符号即可,处于联机状态的线径检测仪则自动返回“a”和五位数的外径数据以及回车符号、换行符号,利用timer控件定时发送命令以及相应的数据处理,就可在屏幕自动上显示采集到实时产品外径数据。
以下是利用mscomm控件事件驱动方式结合2个timer控件以及1个lable控件采集英国beta线径检测仪外径数据的程序代码。
dim buffer as bbbbbb
private sub bbbb_load()
timer1.interval = 1000
timer2.interval = 0
mscomm2.rthreshold = 0
if not mscomm2.portopen then
mscomm2.portopen = true
end if
end sub
private sub mscomm2_oncomm()
timer2.interval = 500
mscomm2.rthreshold = 6
end sub
private sub timer1_timer()
label1.caption = val(mid(buffer, 2, 5)) * 0.001
mscomm2.output = "a" + chr(13)
mscomm2.rthreshold = 6
end sub
private sub timer2_timer()
buffer = mscomm2.bbbbb
timer2.interval = 0
end sub
3.3 plc程序设计
就sg03束管生产线计算机控制系统而言,pc、 plc、 智能仪表、传感器以及各个电机控制系统等共同组成一个有机的整体。计算机监控软件并不是孤立存在的,其对生产线的控制与状态检测的作用是通过plc来实现的。
监控软件通过发送rd(读plc的dm数据区)、 rr(读plc的ir/sr区)获得生产线的运行速度、长度、报警等信息;通过发送wd(写plc的dm数据区)、 wr(写plc的ir/sr区)控制生产线电磁阀、电机等启动、停止以及速度控制。plc通过其模拟量采集模块(ad003)、 数字量采集模块(id212)、 模拟量输出模块(da003)、数字量输出模块(oc225)等分别完成这些功能。
为保证监控软件对生产线的控制,完成生产工艺的要求,plc程序的编制也是同样重要的。在实践中,我们使用omron公司的cpt软件,按照生产运行要求,结合与监控软件数据接口(监控软件中已定义、使用的特定dm以及ir数据区)编制plc梯形图,来达到生产控制可视化的目的。
4 结束语
,使用vb编制监控软件的过程中,不仅要熟练掌握vb的内部控件以及mscomm等activex控件的应用,而且要结合实际生产工艺的需要,使用各种编程方法,逐步完善程序代码,这样才能编制出适应生产控制需要的监控软件来。当然,此监控软件也存在不少需要逐步完善的地方,例如模拟量可以在屏幕上采用形象的模拟表盘的形式加以显示;将工艺流程图片加载到界面窗体背景图片中,实现在软件中显示生产流程功能;使用功能强大的mschart控件,显示生产参数趋势图等。
通过以上编程实践,完成了监控软件的全部编制工作,所编制的软件成功应用于福建新通福、无锡大宇、山东太平洋等公司的sg03束管生产线中;略经修改编制的护套监控程序也成功应用于山东太平洋等公司的护套生产线上,取得了较好的经济效益