Page 291 - 可编程控制器设计原理
P. 291

第八章  S7-200 PLC 子程序的应用


               入操作,从而减少重复代码,提高编程效率,增强程序的可维护性和可扩展性。
                   (二)子程序设计思路

                   1. 功能概述
                   该子程序 BATCH_WRITE 的主要功能是将一系列连续存储的数据批量写入
               到多个设备对应的输出寄存器中。通过使用指针间接寻址的方式,可以灵活地访
               问存储数据的内存区域,并且利用计数器来控制写入操作的次数,确保所有数据
               都能准确无误地写入到目标设备。

                   2. 输入参数
                   (1)Start_Addr (VB200):这是一个字节型变量,用于指定存储待写入数据的
               起始地址。在实际应用中,待写入的数据会连续存储在内存中,通过这个起始地
               址,子程序可以找到数据的起始位置,从而开始进行批量写入操作。

                   (2)Data_Count (VW210):这是一个字型变量,用于指定需要写入的数据数量。
               它决定了子程序需要执行写入操作的次数,通过计数器与该值的比较,可以判断
               是否已经完成了所有数据的写入。
                   3. 实现步骤

                   (1) 初始化操作:在子程序开始执行时,需要进行一些初始化操作,包括将
               数据起始地址存储到累加器 AC1 中,以便后续使用指针间接寻址访问数据;同时,
               将计数器 VW220 初始化为 0,用于记录已经写入的数据数量。
                   (2) 循环写入操作:使用循环结构,不断从起始地址开始依次读取数据,并

               将其写入到目标输出寄存器 QB0 中。在每次写入操作完成后,指针 AC1 加 1,
               指向下一个待写入的数据;计数器 VW220 也加 1,记录已经完成的写入次数。
                   (3) 循环终止条件判断:在每次循环中,需要判断计数器 VW220 的值是否小
               于数据数量 VW210。如果小于,则继续执行循环,进行下一次写入操作;如果

               等于或大于,则表示所有数据都已经写入完成,循环终止。
                   (三)代码详细解释
                   1. 子程序定义
                   // 子程序名称:BATCH_WRITE

                   // 输入参数:Start_Addr (VB200), Data_Count (VW210)
                   // 使用指针间接寻址
                   这段代码明确了子程序的名称为 BATCH_WRITE,并定义了两个输入参数:



                                                                                      283
   286   287   288   289   290   291   292   293   294   295   296