发表于:2008/8/5 9:38:00
#0楼
实战开始,苦手对象:EASY-M0806R
首先,我们得搞清楚,EASY-M0806R的IO引脚的分配情况,这款PLC有8个输入点,6个输出点,那么就相应的有8+6 = 14个IO引脚对应它们的输入和输出,对应原理图我们得知:
8个输入点对应的引脚是:
I0→P3.7 I1→P3.6 I2→P3.5 I3→P3.4 I4→P3.3 I5→P3.2 I6→P3.1 I7→P3.0
6个输出点对应的引脚是:
OUT0→P1.0 OUT1→P1.1 OUT2→P1.2 OUT3→P1.3 OUT4→P1.4 OUT5→P1.5
其次,每个输入输出点都对应一个LED,当输入输出点吸合的时候,对应的LED将被点亮,那么对应原理图我们得知14个LED对应的引脚是:
ILED0→P2.0 ILED1→P2.1 ILED2→P2.2 ILED3→P2.3 ILED4→P2.4 ILED5→P2.5
ILED6→P2.6 ILED7→P2.7
OLED0→P0.4 OLED1→P0.5 OLED2→P0.6 OLED3→P0.7 OLED4→P4.1 OLED5→P4.0
与此同时,PLC还有一个RUN/SET的输入,该输入负责管理PLC的运行状态和下载状态,对应着不同的状态,有一个专门LED点亮/熄灭来判断此输入的状态,一般来说,运行状态时,该LED被点亮,下载状态则反之。根据原理图我们得知:
RUN/SET-LED→P4.3
PLC如果错误的被执行,应该还有一个错误的LED将被点亮,这个LED对应的引脚为:
ERR-LED→P4.2
那么我们怎么得知PLC运行/下载的状态,还有出错的状态呢?请看easycore.inc文件,有3个变量定义:
KEY_SET EQU 3FH ;1有效(下载梯形图)
KEY_PRO EQU 3EH ;0有效(下载用户程序)
PLC_PRO_ERR EQU 3DH ;梯形图错误标志,1有效
这个是我们前几节所没有讲到的,通过检测这些位变量,我们就可以对RUN/SET-LED和ERR-LED进行控制了。
知道了这些以后,我们就对EASY-M0806R的IO引脚分配有了大致的了解,趁此机会,我们把easycore.inc最后剩下没讲完的变量也拉出来遛一下吧~
M0~M15:这16个字节变量可是直接寻址方式的哟,但是应用它们有个局限性,那就是必须得在SCAN里面应用,其他地方是不允许调用这16个字节变量的,如果你非要在其他地方使用,那么就必须得把它们压栈,不过还是不推荐此方法,真的要压栈的话,还不如压公共直接寻址变量区DRAM_USER区域呢。
FLOAT_M1~ FLOAT_M4,W_R0~ W_R7,W_DATA:这几个变量是专门调用easycore.lib函数库里面的函数所要用到的出口入口的变量。大致了解一下它们的含义便行,如果你到了需要调用easycore.lib函数库里面的函数这个阶段,那么本文对你来说,相信应该已经没有多大意义了^-^~!
下一讲我们将分模块来详细叙述如何根据我们所掌握的IO口引脚信息,来填充我们的驱动项目工程。
PS:本节所讲的IO口配置可能会与实际IO口配置略有出入,大家当以实际的原理图为准!
本帖首发中国工控网科威PLC论坛,转载请声明!
首先,我们得搞清楚,EASY-M0806R的IO引脚的分配情况,这款PLC有8个输入点,6个输出点,那么就相应的有8+6 = 14个IO引脚对应它们的输入和输出,对应原理图我们得知:
8个输入点对应的引脚是:
I0→P3.7 I1→P3.6 I2→P3.5 I3→P3.4 I4→P3.3 I5→P3.2 I6→P3.1 I7→P3.0
6个输出点对应的引脚是:
OUT0→P1.0 OUT1→P1.1 OUT2→P1.2 OUT3→P1.3 OUT4→P1.4 OUT5→P1.5
其次,每个输入输出点都对应一个LED,当输入输出点吸合的时候,对应的LED将被点亮,那么对应原理图我们得知14个LED对应的引脚是:
ILED0→P2.0 ILED1→P2.1 ILED2→P2.2 ILED3→P2.3 ILED4→P2.4 ILED5→P2.5
ILED6→P2.6 ILED7→P2.7
OLED0→P0.4 OLED1→P0.5 OLED2→P0.6 OLED3→P0.7 OLED4→P4.1 OLED5→P4.0
与此同时,PLC还有一个RUN/SET的输入,该输入负责管理PLC的运行状态和下载状态,对应着不同的状态,有一个专门LED点亮/熄灭来判断此输入的状态,一般来说,运行状态时,该LED被点亮,下载状态则反之。根据原理图我们得知:
RUN/SET-LED→P4.3
PLC如果错误的被执行,应该还有一个错误的LED将被点亮,这个LED对应的引脚为:
ERR-LED→P4.2
那么我们怎么得知PLC运行/下载的状态,还有出错的状态呢?请看easycore.inc文件,有3个变量定义:
KEY_SET EQU 3FH ;1有效(下载梯形图)
KEY_PRO EQU 3EH ;0有效(下载用户程序)
PLC_PRO_ERR EQU 3DH ;梯形图错误标志,1有效
这个是我们前几节所没有讲到的,通过检测这些位变量,我们就可以对RUN/SET-LED和ERR-LED进行控制了。
知道了这些以后,我们就对EASY-M0806R的IO引脚分配有了大致的了解,趁此机会,我们把easycore.inc最后剩下没讲完的变量也拉出来遛一下吧~
M0~M15:这16个字节变量可是直接寻址方式的哟,但是应用它们有个局限性,那就是必须得在SCAN里面应用,其他地方是不允许调用这16个字节变量的,如果你非要在其他地方使用,那么就必须得把它们压栈,不过还是不推荐此方法,真的要压栈的话,还不如压公共直接寻址变量区DRAM_USER区域呢。
FLOAT_M1~ FLOAT_M4,W_R0~ W_R7,W_DATA:这几个变量是专门调用easycore.lib函数库里面的函数所要用到的出口入口的变量。大致了解一下它们的含义便行,如果你到了需要调用easycore.lib函数库里面的函数这个阶段,那么本文对你来说,相信应该已经没有多大意义了^-^~!
下一讲我们将分模块来详细叙述如何根据我们所掌握的IO口引脚信息,来填充我们的驱动项目工程。
PS:本节所讲的IO口配置可能会与实际IO口配置略有出入,大家当以实际的原理图为准!
本帖首发中国工控网科威PLC论坛,转载请声明!
诚实守信,携手奋进。