Page 292 - 可编程控制器设计原理
P. 292
Principles of Programmable Logic Controller Design
可编程控制器设计原理
Start_Addr 和 Data_Count。同时,注释中提到使用指针间接寻址,这是实现批量
数据处理的关键技术,通过指针可以灵活地访问内存中的数据。
2. 初始化部分
LD SM0.0 // 始终运行
MOVD &VB200, AC1 // 数据起始地址到 AC1
MOVW 0, VW220 // 初始化计数器
(1)LD SM0.0:SM0.0 是西门子 PLC 中的一个特殊标志位,它始终保持为高
电平(逻辑 1)。使用 LD SM0.0 指令的目的是让后续的程序逻辑在 PLC 运行的
每个扫描周期都能执行,确保子程序能够持续工作。
(2)MOVD &VB200, AC1:MOVD 是双字传送指令,&VB200 表示取变量
VB200 的地址,AC1 是累加器 1。这条指令的作用是将存储待写入数据的起始地
址(即 VB200 的地址)传送到累加器 AC1 中。累加器 AC1 在这里作为指针,后
续通过它来间接访问内存中的数据。
(3)MOVW 0, VW220:MOVW 是字型传送指令,这条指令将数值 0 传送到
字型变量 VW220 中,完成计数器的初始化操作。计数器 VW220 用于记录已经
写入的数据数量,初始值为 0。
3. 循环部分
Loop:
LDW< VW220, VW210 // 判断是否完成
MOVB *AC1, QB0 // 写入输出寄存器
INCD AC1 // 指针 +1
INCW VW220 // 计数器 +1
JMP Loop // 循环直到完成
(1)LDW< VW220, VW210:LDW< 是比较指令,用于比较两个字型变量
的值。这里比较计数器 VW220 和数据数量 VW210 的大小。如果 VW220 小于
VW210,则表示还有数据需要写入,该指令的触点闭合,允许后续的写入操作
继续执行;如果 VW220 大于或等于 VW210,则表示所有数据都已经写入完成,
循环将终止。
(2)*MOVB AC1, QB0:MOVB 是字节传送指令,*AC1 表示使用指针间接寻
址方式访问累加器 AC1 所指向的内存地址中的数据。这条指令的作用是将指针
284

