2.2 实时OS
面向小型单片机,一般的实时操作系统无法加载,OS/Ⅱ 占用了过多的资源,EASY V1.00内核根据任务的类别、实时要求、定制了一款专用实时OS,它无文件系统和内存管理两部分。
(1)硬实时状态下的抢占式并发任务管理
EASY V1.00内核提供2.5ms基准时基,它作为一种不可剥夺的任务循环执行用于各类任务的监控管理。
对于工控应用中的异步事件采用并发式任务管理,通过各类中断抢占任务的挂起、执行,每类异步任务执行前,在2.5ms任务中注册,执行后注销,通过2.5ms时基监控并发任务的流量及阻塞状况并报字到上一级任务调度。
(2)EASY V1.00中异步任务
· 通信数据链络层的字节流
· 梯形图语言中的定时器
· 二次开发驱动程序中的实时异步任务
并发任务管理是EASY V1.00中最低层的任务管理,达到ms级实时效果,单位时间内(1ms)占用CPU机时峰值为:
T并=
Ni——1ms内任务的最大执行次数,ti——任务的一次执行最大时间。
EASY V1.00并发任务实时数据见表1、表2。
表1 EASY V1.00并发任务实时数据
任务类别 不可剥夺任务 通信字节流任务 梯形图定时器 驱动并发任务
2.5ms时基 串口0 串口1 CAN
执行次数(N1) 1 1 1 1 1 ND
执行时间(T) 10μs+ΔT 25μs 25μs 50μs 40μs tD
表2 EASY V1.00并发任务实时数据
任务类别 梯形图 通讯 函数调用 用户软中断
任务个数 1 3 1 m4
任务时间 1-20μs 1-10μs 1-5μs t4
T片=3-45μs+t4
t4为用户软中断任务占用时间和。
“扫描周期”指解释、执行所有梯形图指令并执行扫描结束处理所占用的时间,由于这期间有并发任务产生,“扫描周期”应包括并发任务占用时间。
并发任务占用比:
X=T并/ 1ms = (150μs+ΔT+ )/1000μs =15%-100%
设用户梯形图含M条指令
T扫=(M•T片+ΔTend)/X
ΔTend为扫描结束处理占用时间。
2.3 内存管理
ESAYV1.00的运行数据空间包括64K外部RAM+256字节CPURAM,将其分解为系统占用区、PLC资源区、用户嵌入数据区三部分。
(1)系统占用区
系统占用区是EASYV1.00运行时,进行数据缓存、状态保持、系
统堆栈等不对PLC及用户开设的域区。这部分数据区的初始化运行中的监视都由实时OS管理,PLC及用户嵌入程序不得非法侵入。
(2)PLC资源区
梯形图语言管理的数据区包括位区、字区两部分。通常以元件形式体现。
·输入继电器X:X0-X177 128点位型
·输出继电器Y:Y0-Y177 128点位型
·中间继电器M:M0-M1535 1536点位型
·专用中间继电器M8000-M8255 256点位型
·状态继电器S:S0-S999 1000点位型
·时间继电器T:T0-T255 256点位型+字型
·计数器C:C0-C255 256点位型+字型
·通用数据寄存器D:D0-D7999 8000个字型
·专用数据寄存器D:D8000-D8255 256个字节
所有PLC资源是梯形图运行时进行数据存取的区域,是终端应用层可视化区域,用户嵌入的驱动程序,可使用对应元件的绝对地址进行存取,实现了嵌入程序与PLC梯形图之间的数据交换。
(3)用户嵌入数据区
当用户以EASYV1.00内核设计各种嵌入系统时,需针对具体硬件做必要的驱动程序,该部分程序的私有数据存放于用户嵌入数据区,公有数据存放于PLC的资源区,用户嵌入数据区分配如下:
CPU内部:位区(bitRAM):20H-23H 4bytes
字节区(DRAM):58H-67H 16bytes
外部数据存取器:字节区(XRAM):3600H-3FFFH 2560bytes
2.4 梯形图语言
EASYV1.00梯形图语言是一种解释性语言,每一条梯形图语句对应一个固定的函数调用,逐句扫描直至END为一个扫描周期,EASYV1.00支持86条梯形图指令。
(1)基本指令(27条)
助记符 名称 助记符 名称
LD 读取常开点 LDF 读取下降沿
LDI 读取常闭点 ANDP 串接上升沿
AND 串入常开点 ANDF 串接下降沿
ANDI 串入常闭点 ORP 并接上升沿
OR 并入常开点 ORF 并接下降沿
ORI 并入常闭点 INV 运算触点取反
ANB 电路块串联 MPS 运算触点压栈
ORB 电路块并联 MRD 读出压栈触点
OUT 线圈输出 MPP 弹出压栈触点
SET 线圈输出保持 MC 主控
RST 清除线圈输出 MCR 主控结束
PLS 上升沿输出脉冲 NOP 空操作
PLF 下降沿输出脉冲 END 程序结束
LDP 读取上升沿
(2)步进顺控指令(2条)
助记符 名称 助记符 名称
STL 步进梯形图开始 RET 步进梯形图结束
注:步序状态转移只能用SET,当用OUT时视作普通继电器。
(3)功能指令(56条)
助记符 名称 助记符 名称
程序流程 CJ 条件跳转 浮点数运算 ECMP 2进制浮点数比较
CALL 子程序调用 EZCP 2进制浮点数区域比较
SRET 子程序返回 EBCD 2进制浮点数转10进制浮点数
FEND 主程序结束 EBIN 10进制浮点数转2进制浮点数
FOR 循环范围开始 EADD 2进制浮点数加法
NEXT 循环范围结束 ESUB 2进制浮点数减法
传送与比较 CMP 比较 EMUL 2进制浮点数乘法
ZCP 区域比较 EDIV 2进制浮点数除法
MOV 传送 ESQR 2进制浮点数开方
CML 取反传送 INT 2进制浮点数转BIN整数
BCD BCD转换 FLT BIN整数转2进制浮点数
BIN BIN转换 接点运算 LD= 读取“等于比较节点”
四则逻辑运算 ADD BIN加法 LD> 读取“大于比较节点”
SUB BIN减法 LD< 读取“小于比较节点”
MUL BIN乘法 LD<> 读取“不等于比较节点”
DIV BIN除法 LD≦ 读取“小于等于比较节点”
INC BIN加1 LD≧ 读取“大于等于比较节点”
DEC BIN减1 AND= 串联“等于比较节点”
WAND 逻辑字与 AND> 串联“大于比较节点”
WOR 逻辑字或 AND< 串联“小于比较节点”
WXOR 逻辑字异或 AND<> 串联“不等于比较节点”
NEG 求补码 AND≦ 串联“小于等于比较节点”
SQR BIN开方 AND≧ 串联“大于等于比较节点”
循环与移位 ROR 循环右移 OR= 并联“等于比较节点”
ROL 循环左移 OR> 并联“大于比较节点”
RCR 带进位循环右移 OR< 并联“小于比较节点”
RCL 带进位循环左移 OR<> 并联“不等于比较节点”
OR≦ 并联“小于等于比较节点”
OR≧ 并联“大于等于比较节点”
(4)专家指令(1条)
本文关键字:嵌入式 PLC培训资料,plc技术 - PLC培训资料