整理PLC的指令(LAD)二,灌水勿扰
tian1983123
2007年10月25日 16:59:14
只看楼主

程序控制指令 ---(CALL) 调用来自线圈的FC SFC(不带参数) CALL_FB 调用来自框的FB CALL_FC 调用来自框的FC CALL_SFB 调用来自框的系统FB CALL_SFC 调用来自框的系统FC 调用多重背景 调用来自库的块 使用MCR功能的重要注意事项 ---(MCR<) 主控制继电器打开 ---(MCR>) 主控制继电器关闭 ---(MCRA) 主控制继电器激活

程序控制指令


---(CALL) 调用来自线圈的FC SFC(不带参数)
CALL_FB 调用来自框的FB
CALL_FC 调用来自框的FC
CALL_SFB 调用来自框的系统FB
CALL_SFC 调用来自框的系统FC
调用多重背景
调用来自库的块
使用MCR功能的重要注意事项
---(MCR<) 主控制继电器打开
---(MCR>) 主控制继电器关闭
---(MCRA) 主控制继电器激活
---(MCRD) 主控制继电器取消激活
RET 返回
tian1983123
2007年10月25日 17:08:28
2楼
---(Call)(不带参数调用FC或SFC)用于调用没有传递参数的功能(FC)或系统功能
(SFC)。只有在CALL线圈上RLO为“1”时,才执行调用。当执行---(Call)时,
&#8226; 存储调用块的返回地址,
&#8226; 由当前的本地数据区代替以前的本地数据区,
&#8226; 将MA位(有效MCR位)移位到B堆栈中,
&#8226; 为被调用的功能创建一个新的本地数据区。
之后,在被调用的FC或SFC中继续进行程序处理。
回复
tian1983123
2007年10月25日 17:26:40
3楼
CALL_FC,调用功能

当调用一个功能,而被调用块的变量声明表中具有IN、OUT和IN_OUT声明时,这些变量以形式参数列表添加到调用块的程序中。
当调用功能时,必须在调用位置处将实际参数分配给形式参数。功能声明中的任何初始值都没有含义。
回复
tian1983123
2007年10月26日 08:28:45
4楼
调用多重背景
通过声明一个数据类型为功能块的静态变量,创建一个多重背景。只有已经声明的
多重背景才会包括在程序元素目录中。多重背景的符号改变取决于是否带参数以及
带多少个参数。始终标出EN、ENO和变量名。
回复
tian1983123
2007年10月26日 08:33:08
5楼
在其中使用MCRA激活主控制继电器的块:
取消激活MCR时,在MCR(和)MCR之间的程序段中的所有赋值都写入数值0。这对包含
赋值的所有框都有效,包括传递到块的参数在内。
当MCR<指令之前的RLO = 0时,取消激活MCR。
回复
tian1983123
2007年10月26日 08:37:05
6楼
PLC处于STOP状态或未定义的运行特征!

编译器还对在VAR_TEMP中定义的临时变量之后的局部数据进行写访问,以计算地址。
这表示下列命令序列将把PLC设置成STOP状态,或导致未定义的运行特征:
形式参数访问
访问STRUCT、UDT、ARRAY、STRING类型的复杂FC参数的组件
访问来自具有多重背景能力的块(V2版本的块)的IN_OUT区域的STRUCT、UDT、
ARRAY、STRING类型的复杂FB参数的组件。
当地址高于8180.0时,访问具有多重背景能力( V2版本的块)的功能块的参数。
在具有多重背景能力(V2版本的块)的功能块中访问类型为BLOCK_DB的参数,
打开DB0。任何后继数据访问将CPU设置成STOP模式。T 0、C
0、FC0或FB0始终用于TIMER、COUNTER、BLOCK_FC和LOCK_FB。

参数传递
调用可传递参数的功能。
LAD/FBD
梯形图或FBD中的T分支和中线输出以RLO = 0开始。
回复
tian1983123
2007年10月26日 08:41:27
7楼
---(MCR<) 主控制继电器打开

---(MCR<)(打开主控制继电器区域)在MCR堆栈中保存RLO。MCR嵌套堆栈为LIFO
(后入先出)堆栈,且只能有8个堆栈条目(嵌套级别)。当堆栈已满时,---(MCR<)功能
产生一个MCR堆栈故障(MCRF)。
回复
tian1983123
2007年10月26日 09:01:15
8楼
---(MCRA) 主控制继电器激活

---(MCRA)(激活主控制继电器)激活主控制继电器功能。在该命令后,可以使用下列
命令编程MCR区域:
---(MCR<)
---(MCR>)
回复
tian1983123
2007年10月26日 09:09:01
9楼
---(RET) 返回

RET(返回)用于有条件地退出块。对于该输出,要求在前面使用一个逻辑运算。
回复
tian1983123
2007年10月26日 09:16:42
10楼
移位指令

可使用移位指令逐位向左或向右移动输入端IN的内容(另请参见CPU寄存器)。
向左移n位会将输入IN的内容乘以2的n次幂(2 n );向右移n位则会将输入IN的内容除
以2的n次幂(2 n )。例如,如果将十进制值3的等效二进制数向左移3位,则在累加器
中将得到十进制值24的等效二进制数。如果将十进制值16的等效二进制数向右移
2位,则在累加器中将得到十进制值4的等效二进制数。
您为输入参数N提供的数值指示要移动的位数。由移位指令移空的位会用零或符号位
的信号状态(0表示正,1表示负)补上。最后移动的位的信号状态会被载入状态字的
CC 1位中。状态字的CC 0位和OV位会被复位为0。可以使用跳转指令来评估CC 1位。
可使用如下移位指令:
SHR_I 整数右移
SHR_DI 长整数右移
SHL_W 左移字
SHR_W 右移字
SHL_DW 双字左移
SHR_DW 右移双字
回复
tian1983123
2007年10月26日 09:17:15
11楼
循环移位指令

可使用循环移位指令将输入IN的所有内容向左或向右逐位循环移位。移空的位将用
被移出输入IN的位的信号状态补上。
您为输入参数N提供的数值指定要循环移位的位数。
依据具体的指令,循环移位将通过状态字的CC 1位进行。状态字的CC 0位被复位为0。
可使用如下循环移位指令:
ROL_DW 循环左移双字
ROR_DW 循环右移双字
回复

相关推荐

APP内打开