这个贴是给鹭缘的,作为一个传递间接寻址进去子程序里面使用的一个小钢炮程序。
复制程序部分,然后打开记事本,粘贴进去,保存并起名后缀名为awl。打开smart软件,导入即可。
国庆期间大把大把的时间,自己试验吧。
以下程序开始。
SUBROUTINE_BLOCK 名字由你起:SBR13
TITLE=该程序当接通测试端子的时候,会输出一个测试结果。
// 该结果是反映某个输入点的当前通断状态。
// 此输入点就是IB端口和ib端口组合成的输入点的物理地址。IB为字节编号,ib为位编号。
VAR_INPUT
test:BOOL; // 开测试
IB:BYTE; // 字节号
ib:BYTE; // 位号
END_VAR
VAR_OUTPUT
Q:BOOL; // 测结果
END_VAR
VAR
tempD:DWORD;
END_VAR
BEGIN
Network 1
// 建立IB0的指针在tempD。
// 把字节编号注入到指针。
// 用新的指针进行间接寻址,右移字节到临时字节。
// 取得临时字节的最低位,就是意图中寻址的输入点。
LD L0.0
MOVD &IB0, LD4
MOVB LB1, LB7
MOVB *LD4, LB8
SRB LB8, LB2
A L8.0
= L3.0
END_SUBROUTINE_BLOCK