|
各位大虾给我看看这用例怎么写:PLC---IL语言功能说明
一、 数据类型
1. BOOL:可取值 TRUE 和 FALSE。保留8位内存空间。
2. 整型数据类型
类型 名称 下限 上限 内存空间
BYTE 字节 0 255 8 位
WORD 字 0 65535 16 位
DWORD 双字 0 4294967295 32 位
INT 整型 -32768 32767 16 位
3. 常数
1).BOOL – 常数为逻辑值 TRUE 和 FALSE。
2).数值常数
数值可以用二进制、八进制、十进制和十六进制数表示。
示例:
14 (十进制数)
2#1001_0011 (二进制数)
8#67 (八进制数)
16#A (十六进制数)
这些数值可以是 BYTE, WORD, DWORD, INT类型,不允许直接从“大类型”向“小类型”转换。例如,DINT 变量不能简单地以 INT 型变量使用。可以用标准库中的转换功能实现其转换。
二、 指令表
操作符 修饰符 意义
LD N 使当前结果等于操作数
ST N 在操作数位置保存当前结果
S 如果当前结果为 TRUE,置位布尔操作数为 TRUE
R 如果当前结果为 TRUE,复位布尔操作数为 FALSE
AND N, ( 位与
OR N, ( 位或
XOR N, ( 位异或
ADD ( 加
SUB ( 减
MUL ( 乘
DIV ( 除
GT ( >
EQ ( =
NE ( <>
LE ( <=
LT ( <
JMP CN 跳转到标号
) 评估括号操作
三、 关键字
LD ST S R AND OR XOR ADD SUB MUL DIV GT EQ NE LE LT JMP
PROGRAM END_PROGRAM
VAR VAR_INPUT VAR_OUTPUT END_VAR
(*……*):注释
AT %(I Q M)(e X B W D L)
BYTE WORD DWORD INT
四、 修改量
C with JMP, CAL, RET: 如果前一个表达式的结果是TRUE,则执行指令.
N with JMPC, CALC, RETC: 如果前面的表达式结果是FALSE,则执行这条指令 .
N with AND, OR, XOR:最后操作数的非运算〔不是堆栈内容的非运算〕。
左括号修改量"(" 表明运算符的赋值推迟,直到遇到右括号")" 。
五、 定时器输出的时间单位为ms
六、 功能模块
1. RS/SR触发器(同电路)
输入:
RS: S1 R
SR: S R1
输出:
Q1
2. 上升/下降沿触发器(同电路)
输入:
CLK
输出:
Q
3. CTU计数器
输入:
CU R PV
输出:
Q1 CV
4. TP计时器
输入:
IN PT
输出:
Q ET
输出时间单位为MS
时序图
各端说明
七、 范例
PROGRAM test
VAR_INPUT
test1:INT;
Counter: CTU;
END_VAR
LD 5
ST Counter.PV (* Maximum *)
LD %I0
ST Counter.CU
CAL Counter (* Call of the FB instance StationStop *)
LD Counter.Q
ST test1
END_PROGRAM
同事就给我这资料 要我根据 关键字 写用例(程序语言)各位大虾帮帮忙
[ 本帖最后由 楠族开心果 于 2010-5-27 16:39 编辑 ] |
|