整理PLC的指令(STL)一,灌水勿扰
tian1983123
2007年10月30日 13:46:35
只看楼主

位逻辑指令布尔位逻辑使用下列基本指令: A “与” AN “与非” O “或” ON “或非” X “异或” XN “异或非” O “先与后或”可使用以下指令执行嵌套表达式: A( “与”运算嵌套开始 AN( “与非”运算嵌套开始 O( “或”运算嵌套开始 ON( “或非”运算嵌套开始 X( “异或”运算嵌套开始 XN( “异或非”运算嵌套开始 ) 嵌套结束

位逻辑指令

布尔位逻辑使用下列基本指令:
A “与”
AN “与非”
O “或”
ON “或非”
X “异或”
XN “异或非”
O “先与后或”

可使用以下指令执行嵌套表达式:
A( “与”运算嵌套开始
AN( “与非”运算嵌套开始
O( “或”运算嵌套开始
ON( “或非”运算嵌套开始
X( “异或”运算嵌套开始
XN( “异或非”运算嵌套开始
) 嵌套结束
免费打赏
tian1983123
2007年10月30日 13:47:18
2楼
使用以下指令,可以结束一个布尔位逻辑串:
= 赋值
R 复位
S 置位

可使用下述指令之一,更改逻辑运算的结果(RLO):
NOT RLO 取反
SET RLO 置位(=1)
CLR RLO 清零(=0)
SAVE 把 RLO 存入 BR 寄存器

其它指令对上升沿和下降沿有反应:
FN 下降沿
FP 上升沿
回复
tian1983123
2007年10月30日 14:20:20
3楼
比较指令

根据所选择的比较类型,对累加器 1(ACCU1)和累加器 2(ACCU2)进行比较:
== 累加器 1 等于累加器 2
<> 累加器 1 不等于累加器 2
> 累加器 1 大于累加器 2
< 累加器 1 小于累加器 2
>= 累加器 1 大于等于累加器 2
<= 累加器 1 小于等于累加器 2
如果比较结果为真,则指令的 RLO 为“1”。状态字位 CC 1 和 CC 0 表示“小于”、“等于”或“大于”关系。
可执行下列比较指令:
? I 整数比较(16位)
? D 双整数比较(32位)
? R 浮点数比较(32位)
回复
tian1983123
2007年11月02日 17:11:56
4楼
转换指令概述


可以使用以下指令将二进制编码的十进制数(BCD)和整数转换为其它类型的数字:
BTI BCD 转成整数(16位)
ITB 整数(16位)转成 BCD
BTD BCD 转成双整数(32位)
ITD 整数(16 位)转成双整数(32 位)
DTB 双整数(32位)转成 BCD
DTR 双整数(32 位)转成浮点数(32 位,IEEE-FP)

可以使用下述指令之一,求一个整数的补码,或改变一个浮点数的符号:
INVI 对整数求反码(16 位)
INVD 对双整数求反码(32 位)
NEGI 对整数求补码(16 位)
NEGD 对双整数求补码(32 位)
NEGR 对浮点数求反(32 位,IEEE-FP)

可以使用以下“改变累加器 1 中的位顺序”指令,交换累加器 1 低字中或整个累加器中的字节顺序:
CAW 改变累加器 1 低字中的字节顺序(16 位)
CAD 改变累加器 1 中的字节顺序(32 位)
可以使用以下任一指令,将累加器 1 中的 32 位 IEEE 浮点数转换成 32 位整数(双整数)。各条指令的取整方法略有不同:
RND 取整
TRUNC 截尾取整
RND+ 向上取整为双整数
RND- 向下取整为双整数
回复
tian1983123
2007年11月05日 09:38:47
5楼
计数器指令

在 CPU 存储区中留有一块计数器区域。该存储区为每一计数器保留一个 16 位的字。语句表指令集提供了 256 个计数器。
FR 使能计数器(任意)
L 将当前计数器值装入累加器 1
LC 将当前计数器值作为 BCD 码装入累加器 1
R 计数器复位
S 设置计数器预设值
CU 加计数器
CD 减计数器
回复
tian1983123
2007年11月05日 09:54:59
6楼
FR <计数器>
当 RLO 从“0”变为“1”时,该指令将清出沿检测标志,该标志用于设置和选
择所寻址计数器的加计数或减计数。设置计数器或正常计数时不需要使能计数器。
这就意味着不管设置计数器初始值、加计数器或减计数器的 RLO 是否为“1”,
在使能计数器后将不能再执行这些指令。
回复
tian1983123
2007年11月05日 10:05:00
7楼
数据块指令
OPN 打开数据块
CDB 交换共享数据块和背景数据块
L DBLG 将共享数据块的长度装入累加器 1 中
L DBNO 将共享数据块的编号装入累加器 1 中
L DILG 将背景数据块的长度装入累加器 1 中
L DINO 将背景数据块的编号装入累加器 1 中
回复
tian1983123
2007年11月05日 10:11:29
8楼
逻辑控制指令
可以使用跳转指令来控制逻辑流,使其中断程序控制流而从程序的不同点重新开始扫描。你可以使用循环控制指令(LOOP),多次调用一个程序段。
跳转指令或循环控制指令的地址是一个标号。一个跳转标号最多有 4 个字符,第一个字符必须是字母。跳转标号后跟冒号“:”,且在行中必须位于程序语句之前。

回复
tian1983123
2007年11月05日 10:11:54
9楼
可使用以下跳转指令无条件中断正常的程序逻辑流。
JU 无条件跳转
JL 跳转到标号
根据上一条指令产生的逻辑运算结果(RLO)进行跳转:
JC 若 RLO = 1,则跳转
JCN 若 RLO = 0,则跳转
JCB 若 RLO = 1 则跳转,同时对 BR 置位
JNB 若 RLO = 0 则跳转,同时对 BR 复位
根据状态字中的状态位的信号状态进行跳转:
JBI 若 BR = 1,则跳转
JNBI 若 BR = 0,则跳转
JO 若 OV = 1,则跳转
JOS 若 OS = 1,则跳转
根据计算结果进行跳转:
JZ 若零,则跳转
JN 若非零,则跳转
JP 若正,则跳转
JM 若负,则跳转
JPZ 若大于或等于零,则跳转
JMZ 若小于或等于零,则跳转
JUO 若运算无效,则跳转
回复
tian1983123
2007年11月05日 10:26:06
10楼
整数算术运算指令

算术运算指令针对累加器 1 和 2 的内容。对于两个累加器的CPU,累加器 2 的
内容保持不变。
如果 CPU 具有 4 个累加器,将累加器 3 的内容复制到累加器 2 中,将累加
器 4 的内容复制到累加器 3 中。而累加器 4 中原有的内容保持不变。
使用整数算术运算指令,可以进行以下两个整数(16 位和 32 位)之间的运算:
+I 将累加器1和累加器2中的内容相加(16 位整数运算)
-I 将累加器2中的内容减去累加器1中的内容(16 位整数运算)
*I 将累加器1和累加器2中的内容相乘(16 位整数运算)
/I 将累加器2中的内容除以累加器1中的内容(16 位整数运算)
+ 加整型常数(16 位,32 位)
+D 将累加器1和累加器2中的内容相加(32 位双整数运算)
-D 将累加器2中的内容减去累加器1中的内容(32 位双整数运算)
*D 将累加器1和累加器2中的内容相乘(32 位双整数运算)
/D 将累加器2中的内容除以累加器1中的内容(32 位双整数运算)
MOD 双整数除法的余数(32位)
回复
tian1983123
2007年11月05日 10:34:34
11楼
使用装载(L)和传送(T)指令,可以对输入或输出模块与存储区之间或在存储器之间的进行信息交换

L 装载
L STW 将状态字装入累加器 1
LAR1 AR2 将地址寄存器 2 的内容装入地址寄存器 1
LAR1 <D> 将双整数(32 位指针)装入地址寄存器 1
LAR1 将累加器 1 中的内容装入地址寄存器 1
LAR2 <D> 将双整数(32 位指针)装入地址寄存器 2
LAR2 将累加器 2 中的内容装入地址寄存器 1

T 传送
T STW 将累加器 1 中的内容传送到状态字
TAR1 AR2 将地址寄存器 1 的内容传送到地址寄存器 2
TAR1 <D> 将地址寄存器 1 的内容传送到目标地址(32 位指针)
TAR2 <D> 将地址寄存器 2 的内容传送到目标地址(32 位指针)
TAR1 将地址寄存器 1 中的内容传送到累加器 1
TAR2 将地址寄存器 2 中的内容传送到累加器 1
CAR 交换地址寄存器 1 和地址寄存器 2 的内容
回复

相关推荐

APP内打开