APP下载

基于单片机的PLC虚拟负载实验系统的研究

2018-12-10魏春光孙玉梅于玉冲

实验室研究与探索 2018年11期
关键词:驱动程序限位组态

魏春光, 秦 健, 孙玉梅, 于玉冲

(1. 烟台南山学院 工学院, 山东 烟台 265713; 2. 山东科技职业学院 机电工程系, 山东 潍坊 261053)

0 引 言

目前的PLC实验设备大多是将控制对象印刷在面板上,输入、输出用小按钮和指示灯来代替,由于被控对象静止不动,梯形图运行过程中势必会人工输入变化信号,输出用小灯的亮灭代替,使自动运行过程不能完整呈现,同时这些控制面板固定,不易升级,就会导致实验教学内容一成不变,不能适应PLC日新月异的发展,影响了实验教学的效果。一些厂家也推出了动态模型,但是一个模型只针对一种控制对象,体积较大而且价格昂贵[1],PLC的控制对象变化多样,逐一配备动态模型也不现实。

利用组态软件技术,对组态画面中的被控对象分配地址,通过通讯的方式对PLC的内部存储器进行读写操作的仿真方法在很大程度上解决了PLC实物模型构建困难较大的缺点,这种方法不涉及硬件,简单方便。但也正是因为不涉及硬件,使学生在PLC的实践过程中掌握的不全面,对学生工程能力的培养造成欠缺。针对上述问题,本文设计了以单片机为核心的虚拟负载实验装置,用单片机设计硬件接口,作为电脑和PLC之间的连接媒介。上位机通过设计的通信软件向单片机发送指令,设置单片机端口的某些位电平的高低,这些端口直接与PLC的输入相连,能够触发输入信号改变输入映像寄存器的值,促使PLC程序按要求运行,同时PLC的输出信号也通过单片机进入到上位机当中,控制画面中的执行机构运行工作。这种方法实现了软硬件联动,不仅画面逼真,而且练习了硬件操作,更能激发学生的学习兴趣。

1 系统总体设计

系统以单片机为核心进行信号的传递与管理,上位机采用MCGS组态软件,利用其提供的驱动程序开发向导来完成与单片机的信息交换,PLC与单片机的信息管理主要由硬件输入、输出接口实现。总体结构如图1所示。

图1 系统总体结构

2 硬件设计

硬件设计主要涉及单片机的选用、MAX232电平转换、输入接口、输出接口设计。

2.1 单片机的选型

采用STC90C516RD+单片机,该单片机是新一代高速、低功耗单片机,指令代码与8051单片机完全兼容,内部数据存储器容量大[2],适合设计的需要。

2.2 通信接口的设计

STC90C516RD+单片机与上位机的通信采用MAX232进行信号调理,该芯片采用5V供电,具备双驱动电路,能够轻松方便的实现TTL电平和RS232电平之间的转换。

2.3 输入模块的设计

为了增加系统的抗干扰能力,单片机与PLC的输入模块之间采用电隔离,选用TLP521实现。由于单片机I/O的驱动能力弱,采用74LS00非门增大驱动能力。由于PLC输入端电路一般采用直流24 V电源供电,内部以流过电流的大小来确定端口的导通、关断,为确保不发生误判,如图2所示, PLC导通时的电流IC应大于4.5 mA,关断时的电流IC应小于1.5 mA,所以在参数设计时需要计算合适的电阻参数。

图2 输入模块结构

为了确保PLC输入的可靠导通,取电流IF=15 mA,通过TLP521中IF-UF特性曲线确定发光二极管的压降Ud为1.2 V,用电阻R的值计算公式如下:

R=(5-Ud)/IF

(1)

计算值为253 Ω,调整后取300 Ω。将R=300 Ω再带回式(1),计算出IF=12 mA,由于TPL521的电流传输比IC/IF<1,查阅IC-IF曲线确定IC为9 mA左右,大于4.5 mA,可以确保PLC输入端口可靠导通。

关断时由于TTL门输出高电平,IF=0 mA,自然IC=0 mA<1.5 mA,PLC输入端口可以可靠关断。

2.4 输出接口设计

本次设计的PLC虚拟负载实验装置针对的是继电器输出型PLC,PLC的输出是开关量,利用这一特点,采用单片机的独立式键盘设计,将PLC的输出点与单片机的I/O口直接相连,可大大简化硬件设计。具体结构如图3所示。

图3 输出接线

3 软件设计

该套虚拟负载实验装置的核心在于单片机与上位机的信息交互,MCGS是一款非常优秀的国产组态软件,它提供了国内外常用的工控设备的驱动程序,也为其它特殊的设备提供了开发驱动程序向导,运用VB6.0以上的开发环境,该向导能够构建出设备驱动程序的框架,用户按照自己的需要来变成和修改设备驱动程序[3]。

3.1 属性接口

MCGS提供的接口规范中有5个属性接口,程序可以通过调用属性接口函数来设置设备属性。通过设定这5个属性,可以标示设备的类型、类别、设备的通道个数,设备所用I/O地址的个数以及设备所用的I/O基地址[4-8]。

依据接口规范, 子设备是不需要占用系统I/O和I/O地址的。本设计中单片机设备作为子设备与串口父设备对应。本设计中应用的对象是为满足一般需要设计的,PLC的I/O点数为8点输入,8点输出,因此设定通道个数为16个,分别是单片机P1输出通道与PLC的输入点相连,单片机的P2作为PLC的输出负载和输出口相连。定义设置如下:

DevType=1 '1为子设备, 0为独立设备

DevStyle=1 '1和串口父设备对应的子设备

DevChannel=16

DevIONumber=0

DevBaseIO=0[9]

3.2 串口操作函数

在单片机与上位机进行数据交换的过程中,必须要用到串口父设备。MCGS把复杂的对串行端口的设置(如波特率、数据位长度、停止位位数、有无奇偶校验等),初始化和读写操作全部封装在串行通讯父设备中[10]。在编写驱动程序时,子设备按通信协议格式设定命令并把命令放到一个固定的字节数组中,调用串行通信父设备提供的标准串口读写函数,即可完成对数据的读取和发送工作。串行端口操作函数如下:

ComOutDa:t把数据写到串行端口输出到通信设备的串行口操作函数。

ComAllInDa:t将当前输入缓冲区的数据全部读回来的串行口操作函数。

ComOutInDa:t把数据写到串行端口输出到通信设备,并从串行端口中读取返回的数据的串行口操作函数[11]。

3.3 程序挂接

限于篇幅,具体的驱动编制不再赘述。编制好的驱动程序经编译生成*.DLL文件,只要把此文件复制到MCGSProgram Driver的目录下,就完成了设备驱动程序的挂接工作[12-13]。

3.4 单片机中的程序设计

对照着MCGS的驱动程序,在单片机中开辟存储空间,用来和MCGS进行数据接收和发送。本设计中采用的STC90C516RD+单片机内部用1 280个Byte的存储空间,可以根据需要进行内存分配。为了符合通讯协议,单片机的串口设置如下:

void chuankou_init()

{TMOD=0x20;SCON = 0x50; PCON = 0x00;

TH1 = 0xfd; TL1 = 0xfd; TR1 = 1; }

4 运料小车设计实例

运料小车应用广泛[14],其控制具有很强的代表性。其控制要求为:系统初始时,小车位于 左侧,左限位限位开关为ON。当按下启动按钮,小车上方的料仓仓门打开,5 s后料仓关闭,小车向右行驶,到达右限位位置后小车停下,打开小车底部卸料门卸料,10 s后卸料门关闭小车左行,到达左限位后重复上述操作,直到按下停止按钮系统完成一个循环后停止。

I/O分配如表1和表2所示。

表1 输入分配表

表2 输出分配表

4.1 PLC梯形图的设计

通过对控制要求的分析,运用顺序功能图的编程方法[15]可以很轻松设计出梯形图程序,限于篇幅,不再赘述。

4.2 组态监控的设计

画面设计比较简单,在此省略。为了让车的水平运动画面逼真,运行流畅,同时左右限位开关的信息能准确无误地通过单片机传递到PLC中,需要编写脚本程序。在设备通道中变量左限位与P1.2、右限位与P1.3、小车右行与P2.0、小车与左行P2.1关联,设MCGS内部数值型变量位置移动,脚本程序如下:

If 位置移动<9 Then

左限位=1

Else

左限位=0

End If

If 位置移动>172 Then

右限位=1

Else

右限位=0

End If

If P2.0=1 AND 小车右行=0 Then

位置移动=位置移动+5

End If

If P2.1=1 AND 小车左行=0 Then

位置移动=位置移动-5

End If

5 结 语

设计的基于单片机的PLC虚拟负载实验装置,利用开发向导生成的单片机驱动程序为新的实验内容设计提供了极大的方便,也为其他设备的驱动开发提供了很好的思路。在实验教学过程中效果良好,即达到了PLC梯形图程序设计调试的目的,又完成了硬件接线,使学生对PLC项目开发有了较为深刻的认识。装置中存在的不足之处是模拟量、脉冲量等PLC的高级应用尚不完善,在接下来的工作中将进一步设计优化,使装置更加符合PLC实践教学的需要。

猜你喜欢

驱动程序限位组态
浅谈起重机双限位的设置
基于PLC及组态技术的恒温控制系统开发探讨
某型轴承限位销装配工装的改进与应用
计算机硬件设备驱动程序分析
分阶段减少母猪限位栏的使用
防自动弹出的摩托车、电动车锁
基于PLC和组态的智能电动拧紧系统
PLC组态控制在水箱控制系统的应用
铸造行业三维组态软件的应用
基于MPC8280的CPU单元与内部总线驱动程序设计