首页 论坛 博客
 
查看文章
 
标题:《案例》基于嵌入式PLC芯片组的多路模拟量PLC的开发 (下)
2008-09-20 14:24:59
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    ;采样值的累加和是一个字基地址                           ;为#XAI,偏移地址为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℃。
下面的梯形图程序就是把一路热电偶信号转换成温度值,该信号AD值放在D5000,转换后的温度值存放在D5160中。


四、    结束语
笔者利用嵌入式PLC芯片组开发的的PLC产品的实例证明,本着软硬件可裁剪的原则,开发出的产品可以很好的满足用户的个性化需求,节约了硬件成本、缩短了研发周期,并且得到了许多强大的功能,相信它的出现必将使得PLC生产厂家生产出越来越多的贴近终端市场的PLC。
 
参考文献:
1. 黄石科威自控有限公司 《嵌入式PLC原理与应用》
2. 沈阳新华龙有限公司 《C8051F040数据手册》
3. 黄石科威自控有限公司 《EASY编程手册》
4.《KEIL C51开发环境使用手册》

本文引用通告地址:http://182225590.spaces.eaw.com.cn/articles/trackback/item/1316
类别:PLC | 浏览(105) 引用(0)
 
网友评论:
发表评论:
姓 名: [ 登陆 ]
内 容:
验证码: