注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- PLC论坛 -- PLC论坛(非专题) -- PLC应用

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

发表人:lyq_4652 发表时间:2008/8/7 10:03:00  

 

 本栏论题: 科威PLC芯片组开发实例(九)  [1527]

    实战攻坚!
   
    上面一讲我们讲述了该如何对照原理图的引脚分配情况来配置你的INIT_CONFIG子程序,这一讲笔者说说其他3个初始化应该如何编写。
   
    我们先在USER_DATA中定义几个用户变量:
    INPUT_PORTA EQU DRAM_USER
    INPUT_CNT EQU DRAM_USER+1
    XINPUT EQU XRAM_USER
   
    在解释这些变量的含义之前,我们首先聊下PLC的工作状态。
    PLC的输入端口是和梯形图中的X端口相对应的,也就是说,短接I0和COM0(输入端口统一地端子),梯形图中的X0将会吸合,反应在元件监控画面上X0右边会出现绿色的实心小正方形,表示它的触点已被吸合。同理,I0~I7对应的便是X0~X7。
    而PLC的输出端口是和梯形图中的Y端口相对应的,当用户在梯形图中把Y0置1或是元件监控里把Y0强制置1,那么O0端子便和COM1自动短接了。同理,O0~O5对应的便是Y0~Y5。在PLC端子口上是看不到I0和O0的,但是有它们对应的X0和Y0。
    下面我们讲讲这几个用户变量:
    INPUT_PORTA:用来保存当前8个输入端口的输入状态(X0~X7)的。
    INPUT_CNT:输入端子采样次数指针。
    XINPUT:输入端子采样值缓冲区。
   
    这些概念朋友们先大概了解一下便好,至于怎么应用到它们,后面还会具体讲到。
   
    INIT_START
    接下来,我们开始编写INIT_START用户驱动子程序了,添加的代码如下:
    MOV INPUT_CNT,#08H ;1
    CLR A ;2
    MOV DPTR,#RAM_PX+1 ;3
    MOVX @DPTR,A ;4
    MOV DPTR,#RAM_PY+1 ;5
    MOVX @DPTR,A ;6
   
    1. 我们将INPUT_CNT这个变量初始化为8,这也就意味着,采样的次数我们限定它为8次,如果你设置成4,那么输入端口的采样次数就为4,现在只要知道这些就好,我们以后在讲到TMS这个用户驱动子程序时,会详细给大家分析为什么采样输入端口以及如何采样它。
    2. 不用讲了吧…
    3. 这个是将间接寻址指针指向X0~X7所在的地址单元,间接寻址指针的表达方式有2种,笔者惯用的是以DPTR形式来进行寻址。至于另外一种,呵呵,自己查说明书吧。
    4. 这句话的意思是把寄存器A的值赋给X0~X7,因为A的值为0,实际上这句话的作用就是把X0~X7所代表的寄存器的值清零。看到这里,可能有的朋友就又有问题了,为什么X0~X7所在的地址不是#RAM_PX而是#RAM_PX+1呢,其实这个是和内核定义梯形图单元的寻址地址有关。内核规定,梯形图的单元寄存器都是低位在后,高位在前,也就是说,#RAM_PX并不是对应的X0~X7,而是X10~X17。
    5. 这个是将间接寻址指针指向Y0~Y7所在的地址单元。
    6. 同4。
   
    INIT_RUN
    直接让它返回吧,在这个系统里面,没必要配置这个。
   
    INIT_SET
    然后紧接着配置INIT_SET:
    CLR A
    MOV DPTR,#RAM_PX+1
    MOVX @DPTR,A
    MOV DPTR,#RAM_PY+1
    MOVX @DPTR,A
    这里也是清除X0~X7和Y0~Y7的寄存器值,那为什么在这里又要清零呢?会不会跟之前的重复了呢?
    当然不会,注意到系统会在什么时候调用INIT_SET呢?是在内核重新上电后进入梯型图下载状态或内核从梯型图运型状态进入梯型图下载状态时调用此程序一次。
    看到了吧,PLC在不断电的情况下,也会在上面黑体的部分调用到它,举个例子,PLC在运行过程当中,Y3处于闭合状态,现在你要重新灌梯形图了,这个时候你当然希望Y3不再闭合了,而是等你重新下载梯形图完毕以后,系统重新判断Y3到底该不该为1。由于这个时候PLC并不断电,那么调用INIT_START也就无从谈起,也就无法调用那里面的清零语句。所以你必须要在INIT_SET把它两给的值清除了,才能保证PLC的正常工作。
   
    STEP
    也是空的,没必要配置~
   
    下一讲里,我们讲TMS用户驱动子程序,也就是用户2.5ms中断了,这个可是个重点哦~^-^~!
   
    本帖首发中国工控网科威PLC论坛,转载请声明!
   
   

以下是关于《科威PLC芯片组开发实例(九)》论题的回复(共1篇)

回复人:cn18show 

 回复时间:2009/9/30 16:48:00

支持(308) | 反对(441)

 

    易展仪表展览网成立五周年活动拉开序幕,50万回馈,官方网址:http://www.18show.cn/5/?m=189

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳