APP下载

简易微型控制器的开发

2011-11-20明,旭,

大连工业大学学报 2011年3期
关键词:执行程序PC机控件

许 明, 刘 旭, 王 学 俊

(1.大连工业大学 机械工程与自动化学院,辽宁 大连 116034;2.大连港旅顺港务有限公司 工程技术部,辽宁 大连 116052)

0 引 言

目前,在工业控制领域,PLC 以其强大的功能、完善的指令系统占据着大规模、大批量生产的应用场合;而在小规模生产控制场合中,单片机以其超低的成本价格被绝大多数人所认可[1]。但在较小规模自动控制应用场合中,采用PLC控制会增加控制成本,如果利用单片机控制则会带来编程复杂、延长设计周期等问题。针对上述情况,作者研发了一种适用于较小规模自动控制场合的微型控制器。

微型控制器以单片机为控制核心,通过数字量输入、输出模块与外部工业设备连接,完成简单的开关量的逻辑运算、定时、计数、数字量的采集、输出等功能,实现对外部工业设备控制的目的。

1 系统配置

微型控制器主要由PC机软件、主控模块及数字量输入、输出模块组成,其配置图如图1所示。

图1 微型控制器配置图Fig.1 Simple controller device's disposition

微型控制器执行程序的处理在PC 机软件上完成。该软件包括执行程序编辑模块、编译模块和下载模块三部分,软件的3个模块分别完成执行程序的编辑、编译及下载工作。执行程序利用类PLC指令系统编写,程序编写完成后经过编译软件的编译生成二进制程序代码,最后由下载软件通过串口发送给单片机芯片,实现执行程序在线编辑及下载功能。

微型控制器主控模块以SST89E516RD 单片机为控制核心芯片,利用芯片所特有的IAP操作模式接收 PC 机发送的执行程序代码。SST89E516RD 单片机FLASH 存储器被分成两个独立的程序存储块,8K字节的二级FLASH 块能被映射到64K字节低地址空间[2]。将IAP模式应用程序存储在单片机的Block 1程序存储区内,利用该应用程序将微型控制器执行程序代码写入Block 0程序存储区,然后通过SFCF[1∶0]位进行存储块的切换,达到执行程序的执行目的[3]。

微型控制器通过数字量输入、输出模块与外部工业设备连接。模块采用可级联的串行数据寄存器为核心芯片,方便模块进行扩展、升级,以满足外部开关量的数量要求。

2 IAP 下载程序

微型控制器利用单片机的IAP 模式操作完成执行程序的在线下载。该操作包括:存储器擦除、字节编程、字节校验等[4]。

微型控制器IAP模式应用程序采用查询方式接收PC机发送的命令符,根据所接收到的命令符执行相应的IAP操作。程序流程图如图2所示。

下载过程通常按以下步骤进行:首先进行块擦除,其次为字节写入,最后进行字节校验。

3 PC机软件

PC机软件利用VB6.0面向对象语言编制。通过PC 机软件实现微型控制器执行程序的处理,该过程需要3个步骤,即:执行程序的编辑、编译、下载。三者的关系如图3所示。

图2 微型控制器程序流程图Fig.2 Simple controller device's flow block diagram

图3 PC机软件流程图Fig.3 Flow block diagram of PC software

3.1 程序编辑模块

程序编辑模块采用Rich TextBox控件编制,该控件可用于文本的输入和编辑,同时为了更好地实现执行程序的编辑、修改功能,软件设置了编辑下拉菜单,可对Rich TextBox控件内的内容进行剪切、复制、粘贴、查找和替换等操作。界面如图4所示。

图4 软件编辑界面Fig.4 Edition contact surface of software

控制器采用类PLC指令系统进行编程,完成简单的开关量的逻辑运算。该指令系统包含:LD、LDI、AND、ANDI、OR、ORI、OUT、TIM 及CON 等指令,其中TIM 与CON 分别实现定时及计数功能。执行程序编辑模块可将程序保存为.txt格式文件,方便于执行程序的查看及修改。

3.2 程序编译模块

由于微型控制器执行程序采用类PLC 程序指令系统编写,不能直接被控制器应用,因此需要对执行程序进行编译。利用编译软件,不仅可以检查执行程序是否有语法错误,还可以将执行程序转换为能够被微型控制器所执行的二进制代码。对执行程序进行编译的过程分为以下3个步骤:

(1)对执行程序进行读取。软件利用VB 中自带的Split()函数对执行程序内容进行分行读取。Split()函数返回一个下标从零开始的一维数组,它包含指定数目的子字符串[5]。

(2)对字符串进行规格化处理。为了便于程序的编译,并考虑到微型控制器控制指令的规范性要求,规定标准程序字段格式为“XXXX 凵XXX”,即“程序命令符+空格+继电器编码”。规格化处理过程包括:去除字符串中多余的空格,字符的大小写转换等。例如“凵凵Ld凵x00 凵凵”程序段,化为标准格式为“LD 凵X00”。

(3)对已化为规格化形式的类PLC 程序语句进行转换,将类PLC语句转换为单片机芯片的二进制代码。由于微型控制器只是完成简单开关量的逻辑运算,彼此之间仅仅是位运算,因此选择进位标志位C来进行运算处理。类PLC 指令与汇编指令对应关系如表1所示。

表1 类PLC指令与汇编指令对应表Tab.1 The corresponding of class PLC instruction and assembly instructions

微型控制器最大可设有32个输入继电器、32个输出继电器、32个中间继电器。继电器的状态均存储在单片机中的RAM 位寻址区且与位地址一一对应。控制器将继电器的状态保存在其对应的位地址寄存器中,通过对位寄存器存储内容的改变实现单片机对继电器的操作。继电器与单片机RAM 位地址对应关系如表2所示。

表2 继电器与RAM 位寻址区位地址映射表Tab.2 The corresponding of relay and RAM position addressing position address

根据表1、2可以将类PLC 执行程序转换为单片机对相应位地址的操作,再将单片机汇编程序转换为二进制代码实现执行程序的编译。为了提高软件的执行速度和方便下载软件对程序代码的处理,软件中定义一个全局数组a(i)存储执行程序编译生成的二进制代码。

以下列微型控制器类PLC 执行程序片段为例:

根据表2 所示,X00 继电器对应位地址为“00H”,M01继电器对应位地址为“21H”,Y02继电器对应位地址为“42H”,同时查表1 可知:“LD”命令对应汇编语言指令为“MOV C,bit”,“AND”命令对应汇编语言指令为“ANL C,bit”,“OUT”命令对应汇编语言指令为“MOV bit,C”,由此可知。类PLC 程序转换为单片机汇编语言程序为:

对应的二进制代码为“A2 00 82 21 92 42”,将代码依次存入a(i)中,即:

3.3 程序下载模块

经过编译软件的编译,微型控制器执行程序转换为二进制代码存储在数组a(i)中,为了实现执行程序的运行,需要将数组a(i)发送给微型控制器主控模块。

系统的PC机与主控模块利用串口进行数据通信,通信双方约定:波特率为4 800B/s;信息格式为8个数据位,1个停止位,无校验位;传送方式为PC机采用查询方式接收与发送数据。

下载模块利用VB6.0提供的MSComm 控件通过串口与主控模块进行数据交换,完成PC 机与主控模块的数据通信。该控件提供了标准的事件处理函数、过程,并通过属性的方法提供了串行通信参数的设置,解决了串行通信的问题[6]。

MSComm 通信控件,具有功能完善的串口数据的发送和接收功能,具有两种处理通信的方式:事件驱动方式和查询方式。由于查询方式占用的系统资源较多,所以采用事件驱动方式实现串行数据通信[7]。

由于需要发送的数据多达64K 字节,为了提高数据传输的准确性,进行分批发送。软件每次发送64字节数据,发送完毕后等待单片机的应答信号。单片机处理完毕接收到的64字节数据后,向PC机返回应答信号“AA”,PC机根据接收的应答信号判断是否发送下一批次数据。如果接收到的信号为“AA”,则继续发送,否则重新发送数据。

以下为PC机与单片机串行通信的部分代码:

4 结 论

本文提到的微型控制器已在仪表自动车床改造中使用,从应用结果看,机床运行稳定,控制简单方便,达到技术要求。可得出以下结论:采用SST89E516RD 单片机为控制芯片,降低了控制器成本,并利用芯片的IAP 模式,实现微型控制器执行程序的在线编辑与下载,改善了控制器的性能。PC机软件利用VB6.0中的Rich textbox控件及MSComm 控件编制,利用类PLC 程序指令完成微型控制器执行程序的编写,达到简化编程的目的,同时完成执行程序的编译及下载功能,使其更便于用在中小型工业设备的控制中。

[1]张昆,张晓光.一个微型控制器设计中的技巧[J].计算机应用研究,1994(4):21-23.

[2]吴锦虹,黄誉,陈凯.SST89E516RD 存储空间的组织与IAP实现[J].电子制作,2007(5):60-63.

[3]吴汉清.用SST89E516RD 自制51 单片机仿真器[J].无线电,2007(10):72-74.

[4]忠梅.单片机的应用程序设计[M].北京:北京航空航天大学出版社,1997.

[5]李天启,成昊.Visual Basic 6.0学习捷径[M].北京:清华大学出版社,1998.

[6]李江全,张丽.Visual Basic串口通信与测控应用技术实战详解[M].北京:人民邮电出版社,2007.

[7]范逸之,陈立元.Visual Basic与RS232 串行通信控制[M].北京:清华大学出版社,2002.

猜你喜欢

执行程序PC机控件
执行程序中的法律问题与律师的作用
关于.net控件数组的探讨
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
国有划拨土地使用权强制执行问题研究
排除OLT设备登录故障
执行程序与破产程序衔接机制若干问题分析
VIVID3彩色超声仪结构原理及维修
ASP.NET服务器端验证控件的使用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用