欢迎来到天天文库
浏览记录
ID:10576079
大小:57.50 KB
页数:4页
时间:2018-07-07
《基于plc和pc的分布式计算机监控系统的设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于PLC和PC的分布式计算机监控系统的设计论文摘要:供电系统是工厂的重要组成部分,对其可能发生的故障及生产故障进行及时的监控和报警是生产运作顺利进行的有力保障。本文介绍了欧姆龙PLC和PC上位机在石油化工厂的电路监控系统中的应用,详细介绍了该系统的硬件、软件设计,以及通讯连接。关键词:PLC、PC上位机、串口通信Abstract:Thispapersettingoutfromanactualproblemintroducesacircuit-alarmmonitoringsystemofpetrochem
2、icalfactorybasedonPLCandPC.Itintroducesthesystem’sdesignofhardunication一、引言在复杂的电网供电系统中,传统的故障报警一般采用报警烽鸣器、故障指示灯等硬件方式报警。这种方式存在很多缺点,例如如果电网分布分散,则故障报警点也分散,需要安排一定人力巡逻检查.freelmerV3.1编写,实现PLC对故障继电器的初步监控;上位机监控使用VisualBasic6.0编写主监控程序,实现故障实时监控报警、显示、记录、故障点信息查询修改以及运行状态查
3、询等功能。(1)PLC程序:该程序包括三个输入模块和一个输出模块,用于对48个故障信息的采集和分类,并对PLC后备电池状态监控。将故障信息转存到20通道:将故障分类:PLC后备电池状态转存至23通道:(2)上位机程序:主要负责与PLC进行串口通信,读取PLC内部通道状态加以分析,在主界面上实现故障报警、显示、故障点信息查询、故障信息记录查询以及节点信息修改查询等功能。上位机PC与PLC通讯时,按应答方式进行,由上位计算机发给PLC一组ASCⅡ码字符数据,这一数据称为命令块。PLC收到命令块后经分析认为命令正
4、常,则按照命令进行操作,将操作结果返回给上位计算机,PLC返回给上位计算机的这一组数据称为响应块。若PLC收到命令后经分析确认命令不正常,则返回给上位计算机错误命令响应块。上位计算机和PLC通讯时,PLC是被动的,必须由上位计算机给PLC发出命令块,PLC作出响应发还给上位计算机响应块。本程序采用多重通讯方式,多重通讯时首帧以单元号(即HOSTLINK的机号)开始,然后为报头、报文、校验码、结束符(只有一帧时)或分隔符(多帧时)。中间帧以报文开始,然后为校验码、分隔符,中间帧报文每帧最多125个字符。尾帧以
5、报文开始,然后为校验码、结束符,尾帧报文最多124个字符。校验码FCS(FrameCheckSequence)是8位(bit)二进制数转换成的2位字符。这8位二进制数是一帧中校验码前的所有字符的ASCⅡ码按位异或的结果。转换成字符时按照2位十六进制数字转换成对应的数字字符。PLC收到上位计算机发出的命令块后,经分析操作返回给上位计算机响应块,在响应块中含有响应码。如果PLC正常完成上位计算机的命令,则响应码为00,否则,响应码中含有出错信息。上位机PC与PLC的串口通信部分:Timer2的值设为2000,即
6、每隔2s上位机PC向PLC发送一次读取命令,读取信息。PrivateSubTimer2_Timer()Dima(10)AsStringa(0)="00RR00200004"’单元号和报头报文a(1)=FCS(a(0,))’命令格式中的校验位a(2)=a(0)+a(1)+"*"+Chr$(13)’命令码MSm1.Output=a(2)’向PLC发送命令a(3)=MSm1.Inputa(4)=Mid$(a(3),6,2)’响应码CallMessage(a(4))’调用响应码的错误信息Iferrortime3Th
7、enTimer2.Enabled=Falseintr=MsgBox(“通讯错误,是否退出检查连接?”,vbYesNoCancel+vbExclamation,“通讯连接中”)Ifintr=vbYesThen。。。。。。。。。Else。。。。。。。。。EndIfEndIf’如果通讯连接正常则读取数据:a(6)=Mid$(a(3),24,2)’响应块中的校验码a(7)=Mid$(a(3),1,23)a(8)=FCS(a(7))’计算校验码Ifa(8)=a(6)Then’比较校验码是否相同a(9)=Mid$(a(
8、3),8,16)a(10)=Hex2Bin$(a(9))z=a(10)’得到PLC内部通道数据ElseMsgBox(“校验码不正确”)。。。。。。。EndIf校验码计算函数:FunctionFCS(ByValinputstrAsString)AsStringDimslen,.freeltempfcsAsStringslen=Len(inputstr)xorresult=0Forn=1Toslenxorresult
此文档下载收益归作者所有