2、软件开发
嵌入式PLC是基于Cygnal公司的C8051f040芯片开发的,所以二次程序的开发使用51汇编语言。开发选择的编译器是KEIL C51,因为它可以生成我们所需要的.HEX文件。内核留出了七个用户嵌入程序接口,我们只需要充分理解各个接口的功能就可了进行二次开发了,需要熟悉如下内容:a、内核功能b、内核结构c、内核任务管理d、内核存储空间分配。【1】由于系统软件中已经加入了232通信、485通信和CAN通信的功能,所以16路模拟量PLC的二次驱动软件的开发主要集中在模拟量的AD转换和PLC资源区中AD值的实时刷新上。
(1)程序规划
T4中断:完成AD转换和16个通道的切换程序
USER_SCAN:PLC资源区中AD值的刷新。
AD转换过程如下:每一通道连续采样16次,采样完后得到累加和,然后启动下一通道的AD转换。
PLC资源区中AD值的刷新过程如下:在梯形图扫描周期结束时进行,把各路AD值的累加和求平均值后放入PLC的资源区的对应位置处。
(2)程序代码
INIT_AD: ;AD初始化
MOV SFRPAGE, #ADC0_PAGE
MOV REF0CN, #07H ;内部参考电压/输出到VERF
;启动内部温度传感器
MOV AMX0CF, #00H ;单极性输入
MOV ADC0CF, #0B8H ;D7——D3=SYSCLK/采样时钟-1
;采样转换时钟=1US
;D2——D0=GAIN
;000 GAIN=1
MOV ADC0CN, #90H ;启动AD采样
MOV AD_CHANNEL, #00H ;AD通道号,初值为0
MOV AD_COUNT, #00H ;16次采样次数计数。初值为0
RET
SAMPLE_AD: ;AD采样开始
MOV SFRPAGE, #ADC0_PAGE ;AD控制寄存器页
MOV A, AD_CHANNEL ;采样值的累加和是一个字基地址 ;为#XA I ,偏移地址为AD_CHANNEL
RL A
MOV DPTR, #XAI ;XAI存放16次采样值的累加和
ADD A, DPL ;低字节相加
MOV DPL, A
MOVX A, @DPTR
MOV B, A
MOV A, ADC0L
CLR C
ADDC A, B
MOVX @DPTR, A
INC DPTR ;高字节相加
MOVX A, @DPTR
MOV B, A
MOV A, ADC0H
ANL A, #0FH
ADDC A, B
MOVX @DPTR, A ;#XAI中存放格式为低字节、高字节
MOV SFRPAGE, #ADC0_PAGE ;AD控制寄存器页
MOV ADC0CN, #090H ;启动下次AD采样
INC AD_COUNT
MOV A, AD_COUNT
CLR C
SUBB A, #16
JNC FILL_XAI_XAD ;当16次采样完成后,把XAI中16 ;个采样和(2 字节)存放到XAD
RET
3、驱动程序的嵌入
在KEIL C51中编译上述程序。使用下载工具软件“DOWNHEX”,把生成的.HEX文件通过串口下载到芯片组的固定地址处,使得内核可以调用它,从而完成二次驱动程序的开发。到此,16路模拟量PLC的开发工作基本完成。
三、功能介绍
基于嵌入式PLC开发的多路模拟量网络节点具有以下功能:1、采集工业现场的多路热电偶信号,2、支持三菱、台达等多家人机界面, 3、支持梯形图编程(86条指令), 4、支持CANbus互连(多机并联运行或扩展单元连接)等。这里简要介绍下该网络节点的梯形图功能应用。
嵌入式PLC的系统软件中内置了温度转换函数,其功能是把热电偶毫伏信号对应的AD值转化成温度值。适用于任意分度热电偶输入信号,应用于不同的控温场合,配合PID调节,使受控温度精度可达±1℃。
四、结束语
笔者利用嵌入式PLC芯片组开发的的PLC产品的实例证明,本着软硬件可裁剪的原则,开发出的产品可以很好的满足用户的个性化需求,节约了硬件成本、缩短了研发周期,并且得到了许多强大的功能,相信它的出现必将使得PLC生产厂家生产出越来越多的贴近终端市场的PLC。