您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > .NET > 永宏PLC在VB_NET中的应用
永宏PLC在VB.NET中的应用-1-永宏电机股份有限公司永宏PLC在VB.NET中的应用FatekApplicationofPLCinfive-axisreciprocatingmachines肖艺斌永宏电机·范堤商贸(上海)有限公司·上海摘要随着IT产业的进步及网际网络的发展,传统的工业控制所使用之PLC控制器,具有高度的稳定性及抗杂讯的特性且配线容易价格便宜,因此被大量的在自动化的场所,本文介绍了永宏PLC在VB.NET中的应用。关键词:FATEKPLC;VB.NETAbstractWiththeprogressofITindustryandthedevelopmentoftheInternet,thetraditionalindustrialcontroltheuseofPLCcontroller,withhighstabilityandresistancetostaticcharacteristicsandWiringeasyinexpensive,soitisalotofplacesintheautomation,thisarticledescribesfatekPLCinVB.Applicationofthenet.KeyWords:FATEKPLC;VB.NET永宏PLC在VB.NET中的应用-2-永宏电机股份有限公司一前言随着IT产业的进步及网际网络的发展,传统工业控制所使用之PLC控制器,具有高度的稳定性及抗杂讯的特性且配线容易及价格便宜,因此北大量应用的在自动化的场所,已由单机操作朝向网络控制化发展,文本在探讨网络控制化的核心技术,使PC借由RS-232通讯协定控制PLC,并透过VB.NET程序语言,达到远端控制及网际自动化控制的功能。本文以自动红绿灯控制为主题,所使用之PLC为国内永宏电机公司所制FBS-PLC,内含通讯模组,因此不需额外增购,且可由该公司网站免费下载及更新阶梯图软体(Winproladder)。二永宏通讯协议2.1主仆定位与通讯互动关系在永宏PLC的通讯结构上,永宏PLC是被定位为仆系统(SLAVE),而任何与永宏PLC联机的外围设备都为主系统(MASTER),也就是说任何外围设备与永宏PLC之间的通讯都是由主系统(外围设备)来主动发出命令,仆系统(永宏PLC)只有在收到命令信息后才根据该命令的要求响应信息给主系统,而不能主动发出信息给主系统。2.2永宏PLC通讯讯息格式永宏PLC的通讯信息格式无论是命令信息(主系统发出)或响应信息(仆系统发出)都可大概分为6个数据域位,如下图的范例:永宏PLC在VB.NET中的应用-3-永宏电机股份有限公司1)开头字符(STX):ASCII码的开始字符STX的16进制码数为02H,无论命令或响应信息的开头字符都为STX,接收方以此来判断传输数据的开头。2)仆站号码:为两位数的16进制数值,在永宏PLC通讯系统中的网络结构采用主仆系统在整个网络系统中只有一个主系统,但可以有254个仆系统,每个仆系统都有一个独一无二的站号,分别为1~FEH(站号0则当作对所有仆系统作广播下命令),当主系统都对仆系统下命令时是以站号来指定由那个PLC,或所有PLC(广播时)来接收这个命令。在响应信息时,仆系统会将自己的站号响应给主系统,以供主系统确认是它所指定的那个仆站(PLC)所送回的信息。3)命令号码:为两位数的16进制数值,所谓命令号码是由主系统要求仆系统所执行的动作类型,例如要求读取或写入单点状态、填入或读取缓存器数据、强制设定、运转、停止…..等,和站号一样,在响应信息时,仆系统也会将从主系统接收的命令号码原原本本地随同本文数据一块传回主系统。4)本文资料:本文数据可为0(无文本资料)~500个ASCII字符,在命令信息中此字段数据用来指定命令所要运作或存取的对象(地址)或要写入的数值。在响应信息中本字段的开头为一个错误码字符,在正常(没有错误)情况下此错误码必为字符0(30H),其后跟着的才是要响应给主系统的状态或数值等本文数据。当有错误时,本开头字符不再是0,取而代之的是错误码,同时其后不再有其它本文数据(即本文数据仅为一个字符的错误码)。5)校验码(CHECKSUM):校验码是将前述~各字段的所有ASCII字符的16进制数值以〝纵式余数查核法〞LRC(LongitudinalRedundancyCheck)计算产出一个Byte长度(两个16进制数值00~FF)的校验码。当接收端收到信息后按照同样的计算方法则将~字段的所有字符算出其校验码,两个值相同表示传输的数据正确,否则就是有传输错误发生。本通讯协议LRC校验码的计算方法是将各ASCII字符的16进制数码值(8位长度)从头到尾按照顺序相加,但不考虑进位,因此最终结果仍为8位长度的校验码。6)结尾字符(ETX):ASCII码的结尾字符ETX的16进制数码为03H,无论命令或响应信息的结尾字符均都为ETX,当接收方收到ETX字符后便知道该次通讯已结束,可开始处理该命令或数据了。三红绿灯控制阶梯图程序【程序说明】1.按下启动按钮X0交通灯开始工作,按下停止按钮X1,交通灯系统停止运行。2.设东西方西车流量较小,红灯亮的时间为60秒,而南北方向车流量较大,红灯亮的时间为30秒。3.东西方向的红灯时间就是南北方向的“绿灯时间+绿灯闪烁时间+黄灯时间”,反之,南北方向红灯,时间就是东西方向的“绿灯时间+绿灯闪烁时间+黄灯时间”。4.黄灯亮时车和人不能再通过马路,黄灯亮5秒的目的是让正在十字路口通行的人和车有时间到达永宏PLC在VB.NET中的应用-4-永宏电机股份有限公司对面马路。5.东西方向交通灯状态变化规律:6.南北方向交通灯状态变化规律:【阶梯图如下】永宏PLC在VB.NET中的应用-5-永宏电机股份有限公司永宏PLC在VB.NET中的应用-6-永宏电机股份有限公司永宏PLC在VB.NET中的应用-7-永宏电机股份有限公司四VB.NET即时监控程序架构及程序设计PC借由RS232与PLC取得连线,通讯参数如下:9600,7,E,1,整个连线设定可参考Form1_Load()及btnStart_Click()段。即时监控如图一所示,当执行系统启动按钮时,桌面将呈现如图二~图五所示,状态的侦测采用200ms定时触发的方式,依次读取Y0~Y8,R0~R1的即时状态,程序执行段参考Timer1_Tick()段,系统启动功能代码可参考Button2_Click()段,系统停止功能代码可参考Button3_Click()段图一即时监控画面设计图二状态一图三状态二永宏PLC在VB.NET中的应用-8-永宏电机股份有限公司图四状态三图五状态四五结论随着网际网络的普及,远端监控已是必然的趋势,本文所提供PC与FBS-PLC间的连线,仅需在VB.NET程序中加入网际网络物件即可达到Internet的远距控制,亦可透过RS485界面达到远端即时监控。六附录6.1参考文献[1]范堤商贸(上海)有限公司.永宏可编程控制器使用手册I【硬件篇&指令篇】.2010[2]范堤商贸(上海)有限公司.永宏可编程控制器使用手册II【进阶应用篇】.20106.2VB.NET程序段ImportsSystem.IO.PortsPublicClassForm1DimiAsBoolean=FalseDimWithEventsRS232AsSerialPortDelegateSubSetTextCallback(ByValInputStringAsString)'声明一个代理PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadTimer1.Enabled=FalseButton2.Enabled=FalseButton3.Enabled=FalseTextBox.Enabled=FalsetxtReceive.Enabled=False永宏PLC在VB.NET中的应用-9-永宏电机股份有限公司ForEachspAsStringInSerialPort.GetPortNames()cmbCom.Items.Add(sp)NextcmbCom.Sorted=TruecmbCom.SelectedIndex=0EndSubPrivateSubbtnStart_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnStart.ClickDimmBaudRateAsIntegerDimmParityAsIO.Ports.ParityDimmDataBitAsIntegerDimmStopBitAsIO.Ports.StopBitsDimmPortNameAsStringButton2.Enabled=TruemPortName=cmbCom.SelectedItem.ToStringmBaudRate=9600mParity=Parity.EvenmDataBit=7mStopBit=StopBits.OneMe.txtReceive.Text=mPortNameRS232=NewIO.Ports.SerialPort(mPortName,mBaudRate,mParity,mDataBit,mStopBit)TryRS232.Open()'打开串口txtReceive.Text=RS232.IsOpenIfRS232.IsOpen=TrueThentxtReceive.Text=串口已连接“txtReceive.ForeColor=Color.GreenTimer1.Enabled=TruebtnStart.Enabled=FalsebtnClose.Enabled=TruecmbCom.Enabled=FalseEndIfCatchexAsExceptionMessageBox.Show(ex.Message)EndTryEndSubPrivateSubbtnClose_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnClose.ClickButton2.Enabled=False永宏PLC在VB.NET中的应用-10-永宏电机股份有限公司Button3.Enabled=FalseTryRS232.Close()'关闭串口txtReceive.Text=RS232.IsOpenIfRS232.IsOpen=FalseThenTimer1.Enabled=FalsetxtReceive.Text=串口未打开txtReceive.ForeColor=Color.RedbtnStart.Enabled=TruebtnClose.Enabled=FalsecmbCom.Enabled=TrueButton2.Enabled=FalseEndIfCatchexAsExceptionMessageBox.Show(ex.Message)EndTryEndSub'发送数据PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.TickIfi=0Theni=1TryRS232.Write(_014409Y00004D_)CatchexAsExceptionMessageBox.Show(ex.Message)EndTryElsei=0TryRS232.Write(_014602R0000071_)CatchexAsExceptionMessageBox.Show(ex.Message)EndTryEndIfEndSub'触发接收事件PublicSubSp_DataReceived(ByValsenderAsObject,ByValeAsSystem.IO
本文标题:永宏PLC在VB_NET中的应用
链接地址:https://www.777doc.com/doc-7028663 .html