计算机语言中call,PLC编程入门:子程序调用指令CALL、FROM指令、TO指令

CALL指令描述:

6a09f02f7917806bb64ddb08ab4bea1b.png

梯形图示例:

402ad7e266dbc492a5c9bb9f76ce404f.png

由上面的示例程序可知,若X000为ON,则执行CALL跳转指令,将会到子程序P0中去执行,执行完子程序P0后,继续回到主程序中执行下个语句;同样,若果X001为ON,则会跳转到子程序P1中去执行直到程序执行完毕。

在子程序内最多可以允许有4层嵌套,也就是说在子程序中可以嵌套调用其他子程序的次数最多可以有4次。

这里有个FEND,它不同于END,END是所有程序结束指令,而FEND是主程序结束指令,它之后还会执行子程序或者中断程序。SRET则为子程序结束指令。

FROM指令

指令描述

8a949799d00de2913112d064bf241434.png

该指令用于读取特殊扩展模块的BFM区寄存器的数据读取操作。其中:

M1为特殊扩展模块的地址编号,最靠近主模块的为0,依次编号,允许超过8块特殊扩展模块;

M2为特殊模块内BFM的寄存器地址号,取值范围0~32767;

D为读取参数在主模块中的存放地址,当读取的寄存器数多于1个时,占用随后的单元;

N本次读取参数的个数(按Word计算),取值范围1~32767,为按寄存器地址依次读取。

梯形图示例:

5b4357ad35eab178ffc86501bbdf4150.png

表示当X0为ON时,将#1号特殊模块中的第20号地址(16bit宽度)的内容读出到PLC的D200寄存器中,一次读取一笔(n=1)。当X0为OFF时,不执行操作。 当用32bit指令时,D指定的地址为低16bit地址,D+1为高16bit地址。

TO指令

指令描述:

643fbb9f5fc9397f16e9f19b404206ff.png

该指令用于向特殊扩展模块的BFM区寄存器的作数据写入操作。其中:

M1为特殊扩展模块的地址编号,最靠近主模块的为0,依次编号,允许超过8块特殊扩展模块;

M2为特殊模块内BFM的寄存器地址号,取值范围0~32767;

D为主模块中参数寄存器地址,其参数作为写操作数据的来源。当写操作的寄存器数多于1个时,占用随后的单元;

N本次写入参数的笔数,取值范围1~32767,为按寄存器地址依次写入。

梯形图示例

80395ee3e6153430e89005bedd4f5f66.png

表示当X1为ON时,将PLC的D220寄存器中的数据,写入到#1号特殊模块中的第24号地址中,一次只写入1一笔。当X1为OFF时,不执行操作。

关于FROM/TO指令的使用说明:

1. M8164 (FROM /T0 指令的传送点数可变模式)若M8164=ON,执行FROM/T0指令时,特殊数据寄存器D8164(FROM/T0指令的传送点数指定寄存器)的内容作为传送点数n进行处理;

2. 用FROM/TO指令访问扩展模块是比较耗时的操作,执行多个 FROM / T0指令或传送多个缓冲存储器数据时,PLC的扫描周期会延长。为了防止运行超时,可在FROM /T0前加入延长监视定时器时间的WDT指令,或者错开 FROM / T0 指令的执行时间,或者用脉冲执行型指令。

举报/反馈

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值