APP下载

PLC输入输出接口测试系统设计

2011-04-26白晗东

中国测试 2011年3期
关键词:组态上位总线

车 畅,胡 丹,白晗东

(西华大学机械工程与自动化学院,四川 成都 610039)

0 引 言

PLC以其可靠性高、抗干扰能力强、接口模块丰富且编程较为简便等优点在工业现场中被大量用于自动化控制。而PLC控制系统的开发往往都需要对软硬件进行反复的调试,在调试的过程中除了要保证程序的正确性以外,更加重要的是确保软硬件能够实现预定的功能。通常情况下,这就需要将PLC系统拿到实际的工业现场中进行联机调试,并针对问题做出相应修改,然后再次到现场进行调试。这样做虽然能收到比较好的调试效果,但是对于设计人员每次调试必须要在现场进行,系统的修改则要在设计室进行,很不方便,而且要花费比较大的代价。

另外在PLC的相关教学活动中,由于学校的条件所限,不太可能提供完善的工业现场环境来对PLC系统进行联机调试。这就造成仅能软件仿真验证PLC程序语法上是否正确和通过主观来判断PLC系统的功能是否都实现,使学习的效果打了折扣。

该文所设计的PLC自检测及外围设备测试系统是由基于单片机的模拟外围设备的硬件电路部分和测试系统上位机的软件部分共同来模拟工控现场的现场环境,如图1所示。硬件电路的主要作用是提供系统和PLC的硬件接口电路,即提供PLC所需要的模拟/数字输入和接受来自PLC的模拟/数字输出,并负责PLC和测试系统上位机软件之间的数据传递。上位机的软件主要作用是通过接收到测试系统发送来的数据以简单的图表形式来模拟反映出PLC系统的工作状态,据此就可以知道原PLC程序是否能实现既定要求,一定程度上达到了在实验室进行PLC系统现场调试的目的,大大节约了人力物力,并可对PLC的教学和培训提供较大便利。系统的测试上位机软件部分可采用高级语言来编写实现,也可以采用现成的通用组态软件来实现,目前的组态软件具有丰富的空间资源和良好的图形界面,并且支持现场总线通信协议。

图1 系统应用框图

1 系统硬件设计

1.1 系统结构

常用的PLC包含4种接口,分别是开关量输入口DI、开关量输出口DO、模拟量输入口AI、模拟量输出口AO。不同种类的PLC包含不同数量的接口,设计该系统时,需要根据PLC的不同,相应设计出不同特性和数量的I/O口。

在普通的单片机应用系统设计中,当需要大量的接口时,通常采用的方法是用单MCU扩展接口芯片。这种方法的缺点是如果需要的接口较多,那么就要扩展很多的接口芯片,造成MCU管理起来比较复杂,给系统的软硬件设计都会带来困难。该文在设计PLC自检测及外围设备测试系统时,采用了一种多MCU的模块化扩展方式。其实现的方法是,每个MCU都设计出一定数量的接口,不需要扩展过多的接口芯片,这样每个MCU的软硬件都是相对独立的,而且由于每个模块的硬件比较简单,软件编写也变得容易了。另外在设计每个模块的时候,将每个模块都设计出一定数量的开关量I/O和模拟量I/O口,这样做的好处是可以把每个模块都设计成一样的结构,当在和具体的PLC系统联机调试的时候,那么只需要根据实际PLC的I/O口数量选择相应接口模块的数量,然后通过每个模块具有的RS232接口和总线相连,并连接上位机。

该文将设计一个具有32个DI、32个DO、8个AI、8个AO的PLC自检测及测试系统。系统框图如图1所示。选用STC12C5410AD单片机作为模块的MCU,STC12C5410AD单片机是宏晶科技生产的8位单片机,完全兼容传统的8051单片机指令系统,接口的驱动能力更强,片内集成复位电路、4路PWM和8路10位A/D转换。其中PWM可以作为D/A使用[1]。用这种单片机作为模块的MCU,则每个模块都可以设计若干开关量I/O口和模拟量I/O口,而无需外部扩展A/D和D/A转换芯片,将大大简化硬件设计工作。

系统由2个接口模块组成,如图2所示。每个模块通过Modbus总线和上位机相连,Modbus总线协议作为一种广泛应用于工业自动化领域的现场总线,目前有多种通用工业组态软件都支持该协议。标准Modbus总线协议仅定义了串行链路上的通信协议,并没有对物理层进行定义,可以用普通的RS485或者RS232接口来实现Modbus串行链路协议。采用Modbus总线来实现系统的总体构架,这样的设计从通信质量、降低成本和设计难度来考虑都是可行的。

图2 PLC自检测及测试系统原理框图

1.2 模块电路设计

该文中的2个模块硬件结构是一致的,每个模块将包含16个DI、16个DO、4个AI、4个AO。考虑到单片机的IO口数量有限,16个DI采用2片74LS595级联,16个DO采用2片74LS165级联,用串口转并口的方法实现[2]。考虑到PLC的工作电压为24 V,所以要进行接口电平转换才能与单片机的接口连接,该文使用光电耦合器TLP521-4来实现开关量电平的转换[2]。

4个AI用单片机内部集成的4路10位A/D转换来实现,4个AO用单片机内部集成的4路PWM来实现。PWM作为D/A使用时,必须加滤波电路,该文采用两级无源滤波电路将MCU输出的PWM信号转换成0~5V模拟电压信号[1],如图3所示。

图3 PWM转换为模拟信号电路

在实际应用中,为了和PLC的接口信号匹配,往往需要把模拟电压信号转换为模拟电流信号。所以需要在AI和AO接口之后接上信号调理电路,AI之后接的信号调理电路作用是将PLC输出的4~20 mA标准电流信号转换为0~5 V电压信号,电路原理图如图4(a)。与之相反,AO之后的信号调理电路的作用是将单片机输出的0~5 V电压信号转换为适合PLC的4~20 mA标准电流信号,电路图如图 4(b)。

图4(a)中的 RCV420是 RURR-BROWN 公司生产的精密电流环接收器芯片,用于将4~20mA输入信号转换为 0~5V 输出信号[3]。图 4(b)中 XTR110是RURR-BROWN公司推出的精密电压/电流变换器,它是专为模拟信号传输所设计的,可用于将0~5V或 0~10 V 的输入电压转换成 4~20 mA、0~20 mA、5~25mA或其他常用范围的输出电流。图4中R1、R2、R3、R4的典型值分别为 100 kΩ,31.6 Ω,49.9 kΩ,100kΩ,R1为失调调节电位器,调节的方法是设置输入为非零的一个小电压,调节R1使输出有一个正确的电流值,然后使输入为零,则输出必将为零。R4为跨度调节电位器,调节的方法是设置输入电压为满刻度+5V,调节R4使输出电流达到满刻度输出电流20mA。需要注意的是跨度调节会影响到失调调节,因此要反复调整以达到最佳状态[4]。另外RL作为负载,典型值为250 Ω,通过RL的信号为4~20 mA标准电流信号。

2 系统软件设计

系统的软件设计包含测试系统上位机软件和单片机的系统软件2部分内容[5-7]。另外采用Modbus总线将上位机和单片机接口模块相连接,如图2所示,所以上位机软件和单片机的系统软件通信时都要遵守Modbus协议。上位机软件在系统中采用现有的通用组态软件来实现。利用组态软件设计PLC系统的虚拟控制对象来代替工业现场的实际硬件,借助组态界面观察和检验PLC控制的过程和结果是否正确,并对错误进行修改[8]。

单片机的工作就是管理接口以及和上位机交换数据,那么单片机系统软件的核心部分就是按照Modbus协议的通信程序。

图4 信号调理电路

2.1 Modbus协议

Modbus协议是一个主-从通信协议。在系统中有一个主节点和最多247个从节点(地址范围1~247),从节点不能主动发起通信请求,只有在接收到主节点的请求时才能和主节点之间传输数据,另外从节点之间不能进行通信。

Modbus定义了ASCII和RTU(远程终端单元)2种串行传输模式。使用RTU模式时,每帧数据由2个4位十六进制数组成一个8位字节。这种模式的优点在于相同的波特率下单位时间内传输的信息量比ASCII模式更多,但是必须以连续的字符流传输每帧数据,这种情况下就要求系统有严格的定时管理,否则通信质量无法保证[9]。而ASCII模式则用2个ASCII字符发送每帧数据中的一个8位字节,信息效率比RTU模式低,但是对定时管理可以不必太严格。该文采用信息传输效率更高的RTU模式。

RTU模式中一帧数据中的每个字节由11位组成,其格式为1个起始位、8个数据位、1个奇偶校验位和1个停止位。如果不使用奇偶校验的话,包含2个停止位。RTU模式的帧结构如表1所示,从机地址若为0表示主节点对所有从节点的广播,若为1~247的十进制数则为被请求的从节点地址。数据由主节点发往从节点时,功能码告诉从节点主节点向其提出的何种请求。当数据由从节点发往主节点时,功能码则用来指示从节点的响应是否有错误发生。数据段的长度不允许超过252字节。CRC是两字节的循环冗余校验码,对于保障通信的质量非常重要。

表1 RTU帧结构

Modbus报文帧在传输的过程中,为了让接受方能完整正确的检测出帧的开头和结尾,规定每一帧数据的前后至少要有3.5个字符的间隔,并且每帧数据传输过程中应该以连续的字符流发送,字符之间的间隔不能大于1.5个字符,保证这2个定时间隔是保证RTU模式正常通信的前提。

2.2 单片机系统通信程序

在PLC自检测及外围设备测试系统的设计中,将上位机作为主节点,单片机模块作为从节点。当主节点向从节点发出请求时,为了能及时响应主节点发送的请求,从节点采用中断的方式接收主节点发送的数据。图5就是串口中断服务子程序。当从站在间隔至少3.5个字符的时间间隔之后,由串口中断进入服务子程序,首先应该禁止串口中断,并鉴别中断的种类,如果是接收中断,接收到的一个字节是地址码,从站将和自身地址比对,如果是本站地址,将继续接收后续字节,并设置相应标志位和计数器,待一帧数据接收完毕,开串口中断,返回;如果不是本站地址就放弃返回;如果不是接收中断,而是发送中断,就继续将一帧数据发送完毕,开串口中断,返回。

图5 串口中断子程序流程图

3 结束语

该文所设计的PLC自检测及外围设备测试系统是基于单片机系统、Modbus总线和上位机软件来实现的。在对PLC控制系统进行联机调试的过程中,能清楚地发现PLC控制程序的问题和错误,并做出相应的修改。系统稳定,运行效果良好,提高了PLC控制系统的开发效率。另外所采用的模块化接口扩展方法在单片机系统的开发设计中,特别是对于需要扩展大量接口的场合,非常具有参考价值。

[1] 宏晶科技.STC12C5410AD系列单片机器件手册[EB/OL].[2010-10-26].http://www.mcu-memory.com/datasheet/stc/STC-AD-PDF/stc12c5410.pdf.

[2] 黄惟公,邓在中,王燕.单片机原理与应用技术[M].西安:西安电子科技大学出版社,2007.

[3]BURR-BROWN Inc.RCV420 Datasheet[EB/OL].[2010-10-28].http://focus.ti.com/lit/ds/symlink/rcv420.pdf.

[4]BURR-BROWN Inc.XTR110 Datasheet[EB/OL].[2010-10-29].http://focus.ti.com/lit/ds/symlink/xtr110.pdf.

[5] 韩明飞,王雪波.论PLC的应用和发展[J].科技信息:科学教研,2008(12):60-61.

[6]碰登峰.GX Simulator仿真软件在PLC程序调试中的应用[J].机床电器,2010(6):54-55.

[7] 许碧荣.电子专业PLC实验的教学改革与实践[J].教学与研究,2010(11):112-113.

[8] 罗培,马茜,黄辉先.基于单片机和组态软件的PLC控制系统仿真实现[J].计算机系统应用,2007(11):65-67.

[9]华镕.从Modbus到透明就绪-施奈德电气工业网络的协议、设计、安装和应用[M].北京:机械工业出版社,2009.

猜你喜欢

组态上位总线
基于PLC及组态技术的恒温控制系统开发探讨
一种基于CAN总线的误码测试方法
特斯拉 风云之老阿姨上位
基于PLC和组态的智能电动拧紧系统
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
铸造行业三维组态软件的应用
基于PLC和组态的新型回转类测试设备的研制
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计