访问DB/DX中字数大于DW 255的数据

问题:
如何利用CPU 945访问字数大于DW 255的数据?

解答:
使用以下程序能通过CPU 945(可能来自于FW Version Z02)访问字数大于DW255的数据:

使用DB 10和DW 400(便笺式暂存器标记M 200.0)的样例

OB 1
程序段1

名称

.

: C DB 10
:
: L DW 0
:
: JU FB 1
: EXAMPLE
: DWNO: KF +400
:
: BEC
:
: L DW 0
: BE

打开DB 10。

在ACCU1中装载DB 10中的DW 0。

调用样例程序。

如果DWNO太长,会通过FB输出RLO 1,并不再对其作进一步处理。
在ACCU1中装载DB 10中的DW 400。

FB 1
程序段1

名称
BEZ

ERR

.

: EXAMPLE
: DWNO: ...: D ...: KF

: L KF +22
: JU OB 250
: TAK
:
: L W = DWNO
: - D
: L KB 0
: < = D
: JC = ERR
:
: TAK
: L KF +23
: JU OB 250
:
:L KF +20
: JU OB 250
: TAK
:
: L W = DWNO
: + D
:
: L KF +21
: JU OB 250
:
: A F 200.0
: AN F 200.0
: BEU
:
: O F 200.0
: ON F 200.0
: BE

定义形式操作数DWNO。

装载OB 250的no.22功能块。
读取DBL寄存器。
在ACCU1中装载DBL寄存器。

通过操作数DWNO来递减DBL寄存器的值,如果结果不大于0,程序就跳转到FB末尾的ERR(错误)标记。

在ACCU1中装载新的有效字长。
装载OB 250中的no.23功能块。
写入DBL寄存器。

装载OB 250中的no.20功能块。
读取DBL寄存器。
在ACCU1中装载DBL寄存器。

通过操作数DWNO来递增DBL寄存器的值。

装载OB 250中的功能块no.21。
写入DBL寄存器。

如果DWNO正确:
装载RLO 0。

否则如发生错误(DWNO太长或未打开DB/DX):
装载RLO 1。

注意事项:
可以在条目号:1291621中找到关于“如何访问不带TNW/TNB指令的CPU945的字数大于255的数据”的详细信息。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc340014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论