使用跳转信号输入编程主要涉及条件跳转指令和子程序调用与返回指令。以下是具体的编程步骤和注意事项:
条件跳转指令
条件跳转指令用于根据特定条件改变程序的执行流程。以下是一些常用的条件跳转指令及其相关信息:
指令名称 :CJ(条件跳转)助记符:
无
指令代码:
X000
程序步
CJ执行的为3步
CJ(P)为1步
指令格式:
当按下X000后,程序跳转指令开始运行。
程序所跳转的位置为程序指针所在的位置,也就是标号10。
程序指针写在左母线的左边。
当启动跳转指令后,X001这段程序就会被跳过不执行。
当X0为ON时,被跳转CJ命令到标号之间的程序不执行。
在跳转过程中如果Y、M、S被OUT、SET、RST指令驱动使输入发生变化,则仍保持跳转前的状态。
注意事项:
对于T、C,如果跳转时定时器或计数器正发生动作,则此时立即中断计数或停止计时,直到跳转结束后继续进行计时或计数。
正在动作的定时器T192~T199与高速计数器C235~C255,不管有无跳转仍旧继续工作。
功能指令在跳转时不执行,但PLSY、PLSR、PWW指令除外。
子程序调用与返回指令
子程序调用与返回指令用于实现程序的模块化和重用。以下是一些常用的子程序调用与返回指令及其相关信息:
指令名称 :CALL(子程序调用)助记符:
无
指令代码:
无(通常通过其他指令间接实现)
程序步:
无(由调用指令隐含)
指令格式
图中FEND表示主程序结束,在FEND前面的我们称为主程序,在FEND后面的我们称为子程序。
SRET表示子程序结束,或者叫子程序返回。
在FEND与SRET之间的程序,我们称为第一个子程序,在第二个SRET之前的我们称为第二个子程序。
注意事项:
调用子程序时,需要确保子程序的入口点(即SRET指令)正确设置。
子程序内部可以包含条件跳转和子程序调用,以实现复杂的程序逻辑。
调用子程序时,主程序的执行会暂停,直到子程序执行完毕并返回。
示例
```plaintext
主程序:
X000: CJ 10
X001: 输出 Y10
FEND
子程序:
SRET
X002: 输出 Y20
SRET
```
在这个示例中:
1. 主程序在X000处执行条件跳转指令CJ,跳转到标号10的位置。
2. 由于X0为ON,CJ指令跳过了X001,不执行输出Y10的操作。
3. 主程序继续执行,直到遇到FEND。
4. 子程序在SRET处结束,返回主程序。