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
   287   288   289   290   291   292   293   294   295   296   297