基于ISP微控制器的PLC实现方法
设置在低地址空间,系统上电复位从0000H地址直接跳转到PLC系统程序的入口地址,进入PLC监控。下载引导程序位于F000H~FFFFH地址范围,系统上电复位如检测到0000H地址的内容为空“#0FFH”,则自动跳转到下载引导程序的入口地址为F000H,用于升级或更新PLC系统程序。E000H~EFFFH空间固化了若干个PLC控制范例供实验时参照。
SM2965片内768字节RAM作为PLC的梯形图缓冲区,将源程序用PLC汇编器汇编成PLC目标代码文件,并经串行通信口发送到SM2965,由SM2965将其写入梯形图缓冲区。系统无须配置编程器。
三、系统软件组成
系统软件包括微控制器软件和PC机集成软件两部分。为方便系统维护和升级,微控制器软件采用C51编写,对实时性要求较高的部分使用汇编语言编写。微控制器软件主要包括下载引导程序、系统主程序、PLC指令分析程序及串行口中断程序。下载引导程序仅在系统升级时调用。微控制器软件组成如图3所示。
PLC程序按输入采样、执行梯形图程序行及输出刷新三个阶段进行周期性的循环扫描,在输入采样时,间隔2ms连续三次采集P0口状态,结果全相同时为有效,即将其存入输入缓冲区,否则重新采样,以此提高抗干扰能力。执行梯形图程序行时依次读取PLC运行缓冲区数据进行运算,遇到“=”指令时将运算结果存入输出缓冲区。当MCU从运行缓冲区读到“MEND”指令的二进制代码时,表示梯形图程序结束,然后将输出缓冲区的内容一次性输出到P2口,从而完成输出端子的刷新。
PLC上位机软件如图4所示,采用Visual C++6.0编写,主要由串行通信程序和PLC汇编语言汇编器组成,还包括更新范例、装载范例、装载指定实验、系统实时监控、模拟仿真、系统升级和在线帮助等辅助模块。写完梯形图源程序后,用PLC汇编器将其汇编成目标程序文件(OBJ文件)。选取主菜单装载指定实验,再选定相应的OBJ文件,该段目标代码即被传送到PLC运行缓冲区。主菜单上的“更新范例”对应于微控制器的“更新指定范例”模块。调用更新范例和系统升级命令时需要输入权限密码。
四、应用实例
某送料小车自动控制系统如图5所示,STa、STb分别为左行和右行限位开关。小车碰到STa自动停下来装料,10s后装料完毕自动开始右行,碰到STb自动停下来卸料,15s后卸料完毕自动往左行,这样不停地循环工作,直到按下停止按钮为止。
输入:
SBF(右行手动按钮):I0.0
SBR(左行手动按钮):I0.1
SB1(手动停止按钮):I0.2
STa(左行限位):I0.3
STb(右行限位):I0.4
输出:
KMF(左行线圈):Q0.0
KMR(右行线圈):Q0.1
装料:Q0.2
卸料:Q0.3
此例属于一个被控对象(送料小车)的两种相反的工作状态(左行和右行),所以基本电路采用双向控制电路,结合其他控制条件,可以设计出小车控制的梯形图如图7所示。
图7 继电器梯形图
五、系统特点
根据PLC的发展,可在线升级部分或全部系统程序;
可通过I2C总线扩展系统功能;
无需配置编程器,使用标准的串行口下载梯形图程序;
调用ISP功能把梯形图范例固化到MCU内部FLASH中,具有断电数据保持特性;
对RAM写操作把梯形图实验写到MCU内部EXRAM中,EXRAM擦写次数无限;
在实验中可参考PLC控制范例;
PLC控制范例可以根据不同专业要求自行配置;
用于实际控制时,只需将该梯形图程序形成的OBJ文件在线装载到范例1位置;
系统程序具有梯形图语句翻译功能,可外接键盘/显示器,PLC可独立使用;
通用性强,不局限于某种指令系统,用户可自行设计汇编器;
成本低,器件主要有SM2965、232电平转换器、光电耦合器、稳压块、接线端子以及几个电阻和电容。
- 3DES算法的FPGA高速实现(06-21)
- 基于DSP的Max-Log-MAP算法实现与优化(05-27)
- DSP中DMA操作的无阻塞请求实现(06-18)
- 二维DCT编码的DSP实现与优化(09-08)
- 基于DSP处理器上并行实现ATR算法(01-29)
- 基于DSP的H.324终端设计(05-27)