Labview实现PC与PLC实时监控.pdf
【6 0】第 2 7 卷第 4 期2 0 0 5-0 4制造业自动化收稿日期:2 0 0 4-1 0-1 3作者简介:宋万清(1 9 6 2 ),男,博士生,副教授,研究方向为智能控制,故障诊断,现场总线。L a b v i e w 实现 P C 与 P L C 实时监控宋万清,杨建国(东华大学 机械学院,上海 2 0 0 0 5 1)摘要:以 O M R O N C 2 0 0 H E可编程控制器为例,用 L a b v i e w实现 P C 与 P L C 的实时监控功能:P C机读取 P L C的 D M 区连续通道数据;P C 机将 P L C设置为“M O N I T O R”状态,对 I R 区通道写入数据,然后 P L C 设置为“R U N”状态。还介绍了 F C S 校验码的实施。关键词:串行通讯;R S-2 3 2 C 协议;P L C;L a b V I E W;F C S 校验码中图分类号:T P 2 7 3文献标识码:B 文章编号:1 0 0 9-0 1 3 4(2 0 0 5)0 4-0 0 6 0-0 3 0 引言随着P L C 网络通讯功能的不断增强,P L C 与P C组成的集散控制系统被广泛应用。L a b v i e w 把复杂、烦琐、费时的语言编程简化成为菜单或图标提示的选择功能(图形),不仅具有强大的虚拟仪表功能,还具有丰富的图形界面模块、数值分析、数字信号处理。在工业自动化生产线上用L a b v i e w 实施在线监控,不仅能够达到智能的人机界面、智能化控制,而且便于现场技术人员对控制系统软件的二次开发。本文以全自动供水系统为背景,介绍了用L a b v i e w实施在线监控。1 P C 与 P L C 的通讯方式1.1 硬件连接 1 P C 与P L C 之间遵循R S-2 3 2 C 协议。C 2 0 0 H 系列P L C 有C 2 0 0 H-L K 2 0 1 2 5 针串口和C O M 1 9 针串口俩种通讯模块,与P C 连接格式如下:1.2 R S-2 3 2 C 协议 2-3 R S-2 3 2 C 接口(又称 E I A R S-2 3 2 C)是目前最常用的一种串行通讯接口,其中E I A 代表美国电子工业协会,R S 代表“推荐标准”,“2 3 2”是标识号,“C”代表R S-2 3 2 的最新一次修改。其特点是P L C 每接收来制P C 的一个命令帧,就自动向P C 回送一应答帧命令,其命令帧格式为:应答帧格式为:节点号表示上位计算机识别所连接的P L C 设备的代码。L K 2 0 1 模块可以通过S W 1 进行设置,C O M 1模块在D M 6 6 4 8,D M 6 6 5 3 中设置。最多设置3 2,所以一台P C 最多向3 2 个P L C 通讯。识别码和正文取决于上位机命令。结束码为0 0表示正常结束,1 3 表示F C S 错误,1 4 表示格式错误,1 5 表示入口码数据错误,1 8 表示帧长度错误,A 3 表示传输数据时因F C S 错误引起终止,A 8 表示传输数据时因帧长度错误引起终止。1.3 P C 与P L C 实时监控的通讯功能上位机与P L C 组成的实时监控系统,串行通讯必须具备如下三个基本功能,如图1 所示。图1 实时监控通讯功能框图连续循环扫描P C 与P L C 之间的发送、接受命令状态,使用L a b v i e w 的W h i l e 循环即可,以下不在论述;上位机在线读P L C 的D M 区连续通 道数据;上位机向P L C 的I R 数据存储单元发送命令而不影响P L C 正在控制运行的现场设备。2 P C 从 P L C 的 D M 区读取数据 4 命令帧格式:第 2 7 卷第 4 期2 0 0 5-0 4【6 1】制造业自动化识别码R D从指定通道开始连续读出D M区通道内容 5。D M 区是指P L C 的动态数据存储区,其通道号是D M 0 0 0 0 1 9 9 9。应答帧格式若命令帧为“0 0 R D 0 0 0 0 0 0 0 4 5 2*”,表示上位机连续读取D M 0 0 0 0 至D M 0 0 0 3 的4 个通道内容,5 2 为程序算出的F C S。D M 0 0 0 0 通道的数据以十六进制形式放在应答帧中第 8位至第 1 2位,D M 0 0 0 1 通道的数据是第1 3 位至1 6 位,D M 0 0 0 2 通道的数据是第1 7 位至2 0 位,D M 0 0 0 3 通道的数据是第2 1 位至2 4 位,每个通道的数据占四位。对P L C数据的读取只能以“通道”的形式,而不能以“位”的形式。用L a b v i e w 编程步骤为:首先对串口节点初始化,设置串口号、波特率、数据位、停止位和奇偶校验位;写入命令帧,通过P C 的2 3 2 C 串口送到P L C;处理P L C 串口自动返回的应答帧,判断P L C是否正常执行P C 机命令帧。若正常,从响应帧中提取P L C 指定通道的数据到P C 并在界面以十进制显示,否则报警,程序如图2 和图3 所示。图2 串口通讯.V I 图标/连接端口图3 串口通讯.V I 前面板利用“串口设置节点”设置好串口后,在输入控件“命令字符串”中输入需要进行F C S 校验的字符串,经过F C S 校验后利用“字符串合并节点”按照“命令字符串”、“F C S 校验码”、“*”、“回车”的顺序将所有字符打包在一起,成为命令帧,在输出控件“命令帧”中显示,并利用“串口写节点”发送到P L C,程序如图4 所示。图4 串口通讯.V I 框图程序P L C执行命令帧并将结果放在应答帧中传回P C 的串口,利用“串口读节点”和“检测串口缓存节点”P C 将应答帧从串口读出来并在输出控件“应答帧”中显示,程序如图5 所示。图5 串口通讯.V I 框图程序P C 读出应答帧后,先利用“字符串提取节点”将应答帧中的第6、7 位“结束码”字符提取出来,判断是否等于“0 0”,若相等再分别将应答帧中的第8至第1 1 位、第2 0 至2 3 位的D M 通道内容提取出来,利用“十六进制字符串转换成十进制数节点”分别将它们转换成十进制数后,再进行工程转换为有效量程,保留俩位小数,以便在人机界面显示。最后在输出控件“水位值”和“频率值”中显示。如果结束码不等于“0 0”,则前面板上的灯“错误”亮,表示通讯命令未能正常执行,程序如图6。图6 串口通讯.V I 框图程序例如,P C 读取D M区中D M 0 0 1 0 D M 0 0 1 3 通道的D M 0 0 1 0 内容(水箱液位),程序如图7 所示。图7 读取液位值的框图程序【6 2】第 2 7 卷第 4 期2 0 0 5-0 4制造业自动化3 上位机向P L C 的I R 区通道写数据P L C 在“R U N”状态时是不能写入数据,所以P C向P L C 写数据比读数据要复杂。分三步:P L C 的在线运行方式设置为“M O N I T O R”或“P R O G R A M”状态;写数据;再设置回原来的“R U N”状态。当然,这个过程程序是在瞬间完成的。3.1 P C 设置P L C 运行状态命令帧格式:识别码为S C,表示根据命令帧中“正文”设置P L C 的运行方式:0 0 表示P R O G R A M 方式;0 2 表示M O N I T O R方式;0 3表示R U N方式。应答帧格式:例如命令帧为“0 0 S C 0 2 5 2*”,表示不管P L C现在为何种运行方式,PC 将 PLC 设置为“M O N I T O R”,程序如图8、9、1 0、1 1 所示。图8 M O N I T O R.V I 的图标/连接端口图9 M O N I T O R.V I 的前面板图1 0 M O N I T O R.V I 的框图程序图1 1 M O N I T O R.V I 的框图程序在这个程序中由于命令帧是确定的,即作F C S校验的字符串是“0 0 S C 0 2”,所以不需要每次在前面板上输入,也就不需要输入控件“命令字符串”。此外又在前面板上添加了一个输出控件“错误”指示灯,若上位计算机发送命令帧后,P L C 发送的应答帧“结束码”不等于“0 0”时,则“错误”指示灯亮。3.2 向P L C 的I R 区写数据识别码为W R,从指定通道开始一个通道接一个通道地把数据写入I R 区。由于S R 区和输入继电器区是只能读不能写,因此“W R”能写的通道是0 0 0 0 2 9 通道中除了I/O 登记表中登记的、用作输入的通道和0 3 0 2 5 0 通道。命令帧格式:应答帧格式:若命令帧为0 0 W R 0 2 0 0 0 0 0 5 0 0 0 6 0 0 0 7 2 B*,表示P C 将十六进制数“5”写到P L C 的I R 区的2 0 0 通道,将“6”写到2 0 1 通道,将“7”写到2 0 2 通道。W R I T E.V I 的图标/连接端口和前面板与图8、图9 相同。与图1 0、图1 1 不同的是程序多了一个输入控件“命令字符串”,从前面板上输入命令,就可以对P L C 的I R 区中可设置数据的通道写数据。本文程序中F C S 校验子程序只能对最多1 3 位的命令字符串进行校验,所以一次也就只能够对一个通道写数据,如图1 2、1 3 所示。图1 2 M O N I T O R.V I 的框图程序图1 3 M O N I T O R.V I 的框图程序【下转第7 8 页】【7 8】第 2 7 卷第 4 期2 0 0 5-0 4制造业自动化一次采样中断周期的0.2%左右,最坏情况下(状态切换)占用5%,但最坏情况出现的频率极低,并且在这种情况下,计算任务未开始或者已完成,运动控制的其它任务没有调度,所以也满足对该模块的时间花费要求。在上述测试条件下综合考虑多轴控制,实现1 0轴控制开销(不计联动控制计算)占用运算资源小于5 0%。因此,可以证明该模型可以满足数控加工的实时要求且具有高度模块化、易于扩展的特性。5 结论在开放式控制器软件体系结构的研究中,我们尝试采用面向对象的软件方法建立整个系统的模型,并且在实际的控制器硬件平台上进行了验证。经过研究实践,我们认为采用面向对象建模的手段是可以建立符合开放性要求(模块化、可扩展、具有互易操作性)的控制器算法模型的。当然上述模型方法的实现同时需要软件工程手段才能充分保证其性能上的要求。追求控制器的开放化是国际控制器领域技术发展的重要趋势。为了提高企业核心竞争力,实现技术的追赶和超越,我们将继续和高校、科研院所以及行业伙伴等一道,继续这方面的深入研究,推动我国控制器技术的发展和产业升级。参考文献:1 G B/T 1 8 7 5 8.1 机械电气设备 开放式数控系统第1 部分总则 s .中华人民共和国国家标准.2 李佳特.现代C N C 发展趋势 J .制造技术与机床,2 0 0 3(4).3 卞立乾.关于我国数控技术发展战略初探。J .中国机械工程,2 0 0 1(4).4 毕承恩.丁乃建,等.现代数控机床 M .机械工业出版社,1 9 9 1.5 周延佑.开放式数控系统结构的发展.世界制造技术与装备市场,1 9 9 7(2):8 9-9 0.6 刘利.当前N C 的热点开放化与 P C 化 J .机电一体化.1 9 9 8(1):1 8-2 0.7 童教陛.以P C 为基础的C N C 及其开放性 J .世界制造技术与装备市场,1 9 9 7(2):1 9-2 1.8 陈虎.开放式控制器能否成为中国装备控制器技术的新机遇 J .机械工人,2 0 0 4(9):2 9-3 1.9 E r i c h G a m m a,等.设计模式 M .机械工业出版社,2 0 0 0.3.3 将P L C 设置为R U N这个程序与图4-4 结构一样,差别在于将图4-4命令字符串为 00SC02改为命令字符串为 0 0 S C 0 3 即可实现将P L C 设置为R U N。4 F C S 校验码F C S 校验码是P C 发命令帧的一部分,所以首先编写程序,计算出命令帧中的F C S 校验码,如图1 4所示。图1 4 F C S 校验.V I 的框图板F C S 校验是对R S-2 3 2 C 协议从起净“”到正文最后一位之间的所有字符作“异或”运算。用“S t r i n g”是字符串输入控件,输入命令帧中F C S 校验码之前的每一个字符,转换成A S C码的数组后,将数组的每一个元素分别提取出来,第一位与第二位作“异或”后,所得结果与第三位作“异或”,依次类推,再将最终的“异或”结果转换成2 位的十六进制字符,在“h e x i n t e g e r s t r i n g”中输出显示。此F C S 校验程序对1 3 位的字符串进行运算,可以满足读P L C 数据区或写数据时命令帧的F C S 码。若需对多个连续的P L C 通道写数据,只要再插入相应位数的提取数组元素作“异或”运算的功能就可以了。5 结束语本文是以全自动控制供水监控系统而设计,有关P C 与P L C 之间数据传送过程中,进制的转换、工程单位的转换、人机界面没有论述,但L a b v i e w 程序中包含了这些内容。参考文献:1 O M R O N 公司.C 系列H o s t L i n k 单元操作手册 Z .1 9 9 7.2 龚建伟.串口通讯技术 E B 1 0 L .h t t p:/w w w.g j w t e c h.c o m/s e r i a l c o m m.h t m ,2 0 0 1.3 郭宗仁,吴亦锋,郭永,等.可编程序控制器应用系统设计及网络技术 M .北京:人民邮电出版社,2 0 0 2.4 O M R O N 公司.C 2 0 0 H X/C 2 0 0 H G/C 2 0 0 H E p r o g r a m m a b l ec o n t r o l l e r s o p e r a t i o n m a n u a l Z .1 9 9 8.5 钟绍俊,许素安,赵子恺.可编程控制器与L a b V I E W 的通讯实现 J .微计算机信息,2 0 0 3,1 9(3):1 9-2 0.【上接第6 2 页】