可编程逻辑控制器的CPU单元的制造方法与工艺

文档序号:11293570阅读:226来源:国知局
可编程逻辑控制器的CPU单元的制造方法与工艺
本发明涉及在用于控制机械、设备等的动作而使用的PLC(可编程逻辑控制器。也被称为可编程控制器)中执行多个控制程序时的全局变量的同步。

背景技术:
PLC例如由具备用于执行控制程序的微处理器的CPU(中央处理单元)单元、负责来自外部的开关或传感器的信号输入以及对外部的继电器或执行机构(actuator)的信号输出的IO(输入输出)单元等的多个单元构成。CPU单元通过重复执行包含以下操作的控制程序从而控制控制对象,即对其他单元的输出数据的发送、来自其他单元的输入数据的接收、使用输入数据生成输出数据。控制程序包含根据用户的控制目的而生成的用户程序。控制程序也可以包含在用户程序中指示执行的动作控制程序。已知在PLC中以分时方式执行多个控制程序。例如,在专利文献1(特开2007-140655号公报)中记载了以下内容:在由一个CPU处理用于控制电机的动作控制功能和用于执行时序运算的PLC功能的装置中,在基本时钟的每个循环执行“固定周期动作控制处理以及各轴处理”和“高速时序处理”,进而在各基本时钟循环内的剩余时间中执行“低速时序处理”或者“非固定周期动作控制处理”。此外,记载了当低速时序处理在基本时钟循环内不结束的情况下,在相应于规定的基本时钟次数的时间停止后执行剩余的处理。现有技术文献专利文献专利文献1:特开2007-140655号公报

技术实现要素:
发明要解决的课题在PLC中执行多个控制程序时,除了各控制程序仅用于自身的处理的局部变量之外,有时还需要被多个控制程序所参照的全局变量。一个控制程序从开始执行到结束为止的期间,该控制程序只要不是自己改写全局变量的内容,那么就算对同一个全局变量参照了几次也应当得到相同的内容。但是,在该控制程序的执行开始到结束为止的期间,如果其他的控制程序改写了全局变量的内容,则该控制程序无法进行利用了全局变量的具有一贯性的运算。在这样的情况下,考虑控制程序本身在使用全局变量之前将全局变量的内容复制到自身的局部变量,实际的运算中参照局部变量来进行。或者,关于改写全局变量的时间,考虑等待至对于其他控制程序而言改写不方便的时机后执行改写。为此,控制程序的编程人员必须决定全局变量在使用上的过程并按它进行编程,以便进行那样的处理,成为对于控制程序的编程人员的负担。PLC的系统程序如果进行在使用全局变量的一个控制程序从开始执行到结束为止的期间使其他控制程序不能使用该全局变量的排他控制,则确保控制程序的运算的一贯性。但是,如果进行排他控制,则在获得了对全局变量的访问权的控制程序执行结束之前无法执行使用全局变量的其他的控制程序,因此在重视实时性的PLC中,进行伴随这样的长时间的访问限制的排他控制是不现实的。本发明的目的在于,在PLC中,控制程序本身不需要进行用于确保全局变量的一贯性的过程的处理,多个控制程序的并行执行不受妨碍,并且多个控制程序能够参照确保了一贯性的全局变量。用于解决课题的方案根据本发明的一个方面,提供对控制对象进行控制的PLC的CPU单元。PLC的CPU单元包括微处理、存储部件以及通信电路。PLC的CPU单元通过重复输出数据的发送、输入数据的接收、以及使用输入数据生成输出数据的控制程序的执行,从而控制控制对象。存储部件用于存储控制程序、控制控制程序的执行的系统程序、以及有关控制程序使用的变量的属性数据。微处理器执行在存储部件中存储的系统程序以及控制程序。通信电路发送输出数据以及接收输入数据。在变量为由多个控制程序参照的全局变量时,属性数据能够包含能够改写该变量的一个所有者侧控制程序的指定、以及只能参照该变量的一个或者多个参照者侧控制程序的指定。系统程序作为控制程序的执行准备处理而包含:在存储部件内生成用于存储全局变量的全局变量区域的处理;以及关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,在存储部件内生成在该参照者侧控制程序参照全局变量时代替全局变量区域而设为参照目的地的同步缓冲器的处理。系统程序作为控制程序的执行控制处理而包含:用于使所有者侧控制程序开始执行的所有者侧开始处理;如果所有者侧控制程序的执行结束,则将通过该所有者侧控制程序改写的全局变量从全局变量区域复制到与该全局变量对应的同步缓冲器的复制处理;以及用于使参照者侧控制程序开始执行的参照者侧开始处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器以及第2同步缓冲器被不重复地赋予写入目的地状态以及参照目的地状态的其中一个状态,其中,写入目的地状态是能够从全局变量区域复制全局变量的状态,参照目的地状态是能够从参照者侧控制程序进行参照的状态。复制处理是复制到处于写入目的地状态的同步缓冲器的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器被不重复地赋予写入目的地状态、参照目的地状态、待机状态的其中一个状态。复制处理还包含用于调换成为复制目的地的处于写入目的地状态的同步缓冲器以及在与该同步缓冲器相同的组中处于待机状态的同步缓冲器的写入目的地状态和待机状态的第1调换处理。参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为待机状态作为条件,调换处于待机状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的待机状态和参照目的地状态的第2调换处理。或者优选的是,系统程序作为控制程序的执行准备处理而还包含:对通过全局变量相关联的所有者侧控制程序和参照者侧控制程序的每个组合,在存储部件内生成最新数据更新标志的处理。复制处理还包含将与该复制处理关联的最新数据更新标志设为开通的处理。参照者侧开始处理还以与执行开始的参照者侧控制程序的同步缓冲器关联的最新数据更新标志为开通作为条件,包含第2调换处理以及将该最新数据更新标志设为关闭的处理。由此,实现以存储着最新数据的同步缓冲器为待机状态作为条件来执行的第2调换处理。或者优选的是,系统程序作为控制程序的执行准备处理而还包含在存储部件内生成最新状态记录区域的处理。复制处理还包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含以通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器为待机状态作为条件来执行的第2调换处理。或者优选的是,参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为写入目的地状态作为条件,调换处于写入目的地状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的写入目的地状态和参照目的地状态的第3调换处理。更优选的是,系统程序作为控制程序的执行准备处理而还包含:对通过全局变量相关联的所有者侧控制程序和参照者侧控制程序的每个组合,在存储部件内生成最新数据更新标志的处理。复制处理还包含将与该复制处理关联的最新数据更新标志设为开通的处理。参照者侧开始处理还以与执行开始的参照者侧控制程序的同步缓冲器关联的最新数据更新标志为开通作为条件,包含第3调换处理以及将该最新数据更新标志设为关闭的处理。由此,实现以存储着最新数据的同步缓冲器为写入目的地状态作为条件来执行的第3调换处理。或者更优选的是,系统程序作为控制程序的执行准备处理而还包含在存储部件内生成最新状态记录区域的处理。复制处理还包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含以通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器为写入目的地状态作为条件来执行的第3调换处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。系统程序作为控制程序的执行准备处理而还包含在存储部件内生成最新状态记录区域的处理。复制处理还包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含将通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器设为在该参照者侧控制程序的执行中参照的参照目的地状态的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器被不重复地赋予能够从全局变量区域复制全局变量的状态即写入目的地状态、参照目的地状态、待机状态的其中一个状态。复制处理是复制到处于写入目的地状态的同步缓冲器的处理,并且还包含用于调换成为复制目的地的处于写入目的地状态的同步缓冲器以及在与该同步缓冲器相同的组中处于待机状态的同步缓冲器的写入目的地状态和待机状态的第1调换处理。参照者侧开始处理还包含将属于与设为参照目的地状态的同步缓冲器相同的组并且不是写入目的地状态的同步缓冲器设为待机状态的处理。或者优选的是,第1同步缓冲器以及第2同步缓冲器被不重复地赋予能够从全局变量区域复制全局变量的状态即写入目的地状态、以及参照目的地状态的其中一个状态。复制处理是复制到处于写入目的地状态的同步缓冲器的处理。参照者侧开始处理还包含将属于与设为参照目的地状态的同步缓冲器相同的组的另一个同步缓冲器设为写入目的地状态的处理。或者优选的是,参照者侧开始处理还包含将通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器设为写入禁止状态的处理。系统程序作为控制程序的执行控制处理还包含:如果参照者侧控制程序的执行结束,则解除处于写入禁止状态的同步缓冲器的写入禁止状态的写入禁止解除处理。复制处理是将第1同步缓冲器以及第2同步缓冲器中不是写入禁止状态的其中一个同步缓冲器作为复制目的地进行复制的处理。优选的是,参照者侧开始处理还包含将在其执行中参照的同步缓冲器设为写入禁止状态的处理。系统程序作为控制程序的执行控制处理还包含:如果参照者侧控制程序的执行结束,则解除处于写入禁止状态的同步缓冲器的写入禁止状态的写入禁止解除处理。复制处理是以复制目的地的同步缓冲器不是写入禁止状态作为条件而执行的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量生成一个同步缓冲器的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。系统程序作为控制程序的执行准备处理而还包含在存储部件内生成最新状态记录区域的处理。复制处理是将第1同步缓冲器以及第2同步缓冲器中不是写入禁止状态的其中一个同步缓冲器作为复制目的地进行复制的处理,进而包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含将通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器设为在该参照者侧控制程序的执行中参照的参照目的地状态的处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第2同步缓冲器是参照者侧控制程序参照全局变量时设为参照目的地的同步缓冲器。复制处理是复制到第1同步缓冲器的处理。参照者侧开始处理还包含将第1同步缓冲器中存储的数据复制到第2同步缓冲器的处理。根据本发明的另一方面,提供一种PLC用的系统程序,用于在PLC的CPU单元中被存储到存储部件并且通过微处理器执行,PLC的CPU单元包括微处理器、存储部件以及通信电路,PLC的CPU单元通过重复输出数据的发送、输入数据的接收、以及使用输入数据生成输出数据的控制程序的执行,从而控制控制对象。存储部件用于存储控制程序、控制控制程序的执行的系统程序、以及有关控制程序使用的变量的属性数据。微处理器除了执行系统程序之外,执行控制程序。通信电路发送输出数据以及接收输入数据。在变量为由多个控制程序参照的全局变量时,属性数据能够包含能够改写该变量的一个所有者侧控制程序的指定、以及只能参照该变量的一个或者多个参照者侧控制程序的指定。系统程序使微处理器作为控制程序的执行准备处理而执行以下处理:在存储部件内生成用于存储全局变量的全局变量区域的处理;以及关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,在存储部件内生成在该参照者侧控制程序参照全局变量时代替全局变量区域而设为参照目的地的同步缓冲器的处理。系统程序使微处理器作为控制程序的执行控制处理而执行以下处理:用于使所有者侧控制程序开始执行的所有者侧开始处理;如果所有者侧控制程序的执行结束,则将通过该所有者侧控制程序改写的全局变量从全局变量区域复制到与该全局变量对应的同步缓冲器的复制处理;以及用于使参照者侧控制程序开始执行的参照者侧开始处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器以及第2同步缓冲器被不重复地赋予写入目的地状态以及参照目的地状态的其中一个状态,其中,该写入目的地状态是能够从全局变量区域复制全局变量的状态,该参照目的地状态是能够从参照者侧控制程序进行参照的状态。复制处理是复制到处于写入目的地状态的同步缓冲器的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器、第2同步缓冲器、第3同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器被不重复地赋予写入目的地状态、参照目的地状态、待机状态的其中一个状态。复制处理还包含用于调换成为复制目的地的处于写入目的地状态的同步缓冲器以及在与该同步缓冲器相同的组中处于待机状态的同步缓冲器的写入目的地状态和待机状态的第1调换处理。参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为待机状态作为条件,调换处于待机状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的待机状态和参照目的地状态的第2调换处理。或者优选的是,参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为写入目的地状态作为条件,调换处于写入目的地状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的写入目的地状态和参照目的地状态的第3调换处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。系统程序还使微处理器作为控制程序的执行准备处理而执行在存储部件内生成最新状态记录区域的处理。复制处理还包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含将通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器设为在该参照者侧控制程序的执行中参照的参照目的地状态的处理。优选的是,参照者侧开始处理还包含将在其执行中参照的同步缓冲器设为写入禁止状态的处理。系统程序还使微处理器作为控制程序的执行控制处理而执行以下处理:如果参照者侧控制程序的执行结束,则解除处于写入禁止状态的同步缓冲器的写入禁止状态的写入禁止解除处理。复制处理是以复制目的地的同步缓冲器不是写入禁止状态作为条件而执行的处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第2同步缓冲器是参照者侧控制程序参照全局变量时设为参照目的地的同步缓冲器。复制处理是复制到第1同步缓冲器的处理。参照者侧开始处理还包含将第1同步缓冲器中存储的数据复制到第2同步缓冲器的处理。根据本发明的又一方面,提供一种存储了PLC用的系统程序的记录介质,该系统程序用于在PLC的CPU单元中被存储到存储部件并且通过微处理器执行,PLC的CPU单元包括微处理器、存储部件以及通信电路,PLC的CPU单元通过重复输出数据的发送、输入数据的接收、以及使用输入数据生成输出数据的控制程序的执行,从而控制控制对象。存储部件用于存储控制程序、控制控制程序的执行的系统程序、以及有关控制程序使用的变量的属性数据。微处理器除了执行系统程序之外,执行控制程序。通信电路发送输出数据以及接收输入数据。在变量为由多个控制程序参照的全局变量时,属性数据能够包含能够改写该变量的一个所有者侧控制程序的指定、以及只能参照该变量的一个或者多个参照者侧控制程序的指定。系统程序使微处理器作为控制程序的执行准备处理而执行以下处理:在存储部件内生成用于存储全局变量的全局变量区域的处理;以及关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,在存储部件内生成在该参照者侧控制程序参照全局变量时代替全局变量区域而设为参照目的地的同步缓冲器的处理。系统程序使微处理器作为控制程序的执行控制处理而执行以下处理:用于使所有者侧控制程序开始执行的所有者侧开始处理;如果所有者侧控制程序的执行结束,则将通过该所有者侧控制程序改写的全局变量从全局变量区域复制到与该全局变量对应的同步缓冲器的复制处理;以及用于使参照者侧控制程序开始执行的参照者侧开始处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器以及第2同步缓冲器被不重复地赋予写入目的地状态以及参照目的地状态的其中一个状态,其中,该写入目的地状态是能够从全局变量区域复制全局变量的状态,该参照目的地状态是能够从参照者侧控制程序进行参照的状态。复制处理是复制到处于写入目的地状态的同步缓冲器的处理。更优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器、第2同步缓冲器、第3同步缓冲器作为同步缓冲器的组来生成的处理。第1同步缓冲器、第2同步缓冲器以及第3同步缓冲器被不重复地赋予写入目的地状态、参照目的地状态、待机状态的其中一个状态。复制处理还包含用于调换成为复制目的地的处于写入目的地状态的同步缓冲器以及在与该同步缓冲器相同的组中处于待机状态的同步缓冲器的写入目的地状态和待机状态的第1调换处理。参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为待机状态作为条件,调换处于待机状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的待机状态和参照目的地状态的第2调换处理。或者优选的是,参照者侧开始处理还包含对于执行开始的参照者侧控制程序的同步缓冲器,以存储着最新数据的同步缓冲器为写入目的地状态作为条件,调换处于写入目的地状态的同步缓冲器以及处于参照目的地状态的同步缓冲器的写入目的地状态和参照目的地状态的第3调换处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。系统程序还使微处理器作为控制程序的执行准备处理而执行在存储部件内生成最新状态记录区域的处理。复制处理还包含在最新状态记录区域中记录复制目的地的同步缓冲器为最新状态的情况的处理。参照者侧开始处理还包含将通过最新状态记录区域的内容所确定的处于最新状态的同步缓冲器设为在该参照者侧控制程序的执行中参照的参照目的地状态的处理。优选的是,参照者侧开始处理还包含将在其执行中参照的同步缓冲器设为写入禁止状态的处理。系统程序还使微处理器作为控制程序的执行控制处理而执行以下处理:如果参照者侧控制程序的执行结束,则解除处于写入禁止状态的同步缓冲器的写入禁止状态的写入禁止解除处理。复制处理是以复制目的地的同步缓冲器不是写入禁止状态作为条件而执行的处理。优选的是,生成同步缓冲器的处理是关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,将第1同步缓冲器以及第2同步缓冲器作为同步缓冲器的组来生成的处理。第2同步缓冲器是参照者侧控制程序参照全局变量时设为参照目的地的同步缓冲器。复制处理是复制到第1同步缓冲器的处理。参照者侧开始处理还包含将第1同步缓冲器中存储的数据复制到第2同步缓冲器的处理。发明效果根据本发明,在PLC中多个控制程序能够参照确保了一贯性的全局变量。此时,控制程序本身不需要进行用于确保全局变量的一贯性的过程的处理。此外,由于对全局变量的访问权长时间处于开放等待,因此多个控制程序的分时执行或者并行执行不受妨碍。附图说明图1是表示本发明的实施方式的PLC系统的概略结构的示意图。图2是表示本发明的实施方式的CPU单元的硬件结构的示意图。图3是表示本发明的实施方式的由CPU单元执行的软件结构的示意图。图4是表示本发明的实施方式的CPU单元的主存储器的区域结构的示意图。图5是表示本发明的实施方式的CPU单元中的系统程序的整体处理的流程图。图6是表示实施方式1的执行动作的时序图。图7是针对图6所示的控制循环1以及2放大示出的时序图。图8是表示实施方式1的执行动作的流程图。图9是表示实施方式1的另一执行动作的时序图。图10是表示实施方式1的另一执行动作的流程图。图11是表示实施方式2的执行动作的时序图。图12是表示实施方式2的执行动作的流程图。图13是表示实施方式2的另一执行动作的时序图。图14是表示实施方式2的另一执行动作的流程图。图15是表示实施方式3的执行动作的时序图。图16是表示实施方式3的执行动作的流程图。图17是表示实施方式3的另一执行动作的时序图。图18是表示实施方式3的另一执行动作的流程图。图19是表示实施方式3的多核的微处理器下的执行动作的时序图。图20是表示实施方式3的多核的微处理器下的执行动作的时序图。图21是表示实施方式3的执行动作的流程图。图22是表示实施方式3的多核的微处理器下的另一执行动作的时序图。图23是表示实施方式3的另一执行动作的流程图。图24是表示实施方式4以及5的多核的微处理器下的执行动作的时序图。图25是表示实施方式4以及5的多核的微处理器下的执行动作的时序图。图26是表示实施方式4的执行动作的流程图。图27是表示实施方式4以及5的多核的微处理器下的另一执行动作的时序图。图28是表示实施方式4的另一执行动作的流程图。图29是表示实施方式5的执行动作的流程图。图30是表示实施方式5的另一执行动作的流程图。图31是表示实施方式6以及7的多核的微处理器下的执行动作的时序图。图32是表示实施方式6以及7的多核的微处理器下的执行动作的时序图。图33是表示实施方式6的执行动作的流程图。图34是表示实施方式6的多核的微处理器下的另一执行动作的时序图。图35是表示实施方式6的另一执行动作的流程图。图36是表示实施方式7的执行动作的流程图。图37是表示实施方式7的另一执行动作的流程图。图38是表示本发明的实施方式的连接到CPU单元使用的PLC支援装置的硬件结构的示意图。图39是表示本发明的实施方式的连接到CPU单元使用的PLC支援装置的软件结构的示意图。具体实施方式参照附图详细说明本发明的实施方式。另外,针对图中相同或者相应部分附上相同标号并且不重复其说明。<A.系统结构>本实施方式的PLC控制机械或设备等的控制对象。本实施方式的PLC包含作为其构成元素的CPU单元。CPU单元包含微处理器、存储部件、通信电路。存储部件用于存储控制程序、用于控制程序的执行的系统程序、以及针对控制程序使用的变量的属性数据。微处理器执行在存储部件中存储的系统程序以及控制程序。通信电路发送输出数据以及接收输入数据。当变量为被多个控制程序所参照的全局变量时,属性数据可包含能够改写该变量的一个所有者侧控制程序的指定、以及只能参照该变量的一个或者多个参照者侧控制程序的指定。首先,参照图1说明本实施方式的PLC1的系统结构。图1是表示本发明的实施方式的PLC系统的概略结构的示意图。参照图1,PLC系统SYS包含PLC1、经由现场网络2与PLC1连接的伺服电机驱动器3以及远程IO终端5、作为现场设备的检测开关6以及继电器7。此外,在PLC1中经由连接线缆10等连接PLC支援装置8。PLC1包含执行主要的运算处理的CPU单元13、一个以上的IO单元14、特殊单元15。这些单元构成为能够经由PLC系统总线11相互交换数据。此外,这些单元中通过电源单元12被提供适当的电压的电源。另外,作为PLC1而构成的各单元由于是PLC厂家提供,因此PLC系统总线11通常由每个PLC厂家独立开发并使用。相对于此,如后述那样针对现场网络2,为了不同厂家的产品之间能够连接,其标准等已公开的情况也较多。针对CPU单元13的细节,参照图2在后面叙述。IO单元14是有关通常的输入输出处理的单元,负责如导通/截止这样的二值化的数据的输入输出。即,IO单元14收集表示检测开关6等的传感器是正在检测某种对象物的状态(导通)以及没有检测任何对象物的状态(截止)中的哪一个的信息。此外,IO单元14对如继电器7或执行机构这样的输出目的地,输出用于激活的指令(导通)以及用于失活的指令(截止)的其中一个。特殊单元15具有如模拟数据的输入输出、温度控制、基于特定的通信方式的通信这样的在IO单元14中不支持的功能。现场网络2传输与CPU单元13交换的各种数据。作为现场网络2,典型地,可使用各种工业用以太网(注册商标)。作为工业用以太网(注册商标),例如已知EtherCAT(注册商标)、ProfinetIRT、MECHATROLINK(注册商标)-III、Powerlink、SERCOS(注册商标)-III、CIPMotion等,可以采用这其中的任一个。进而,也可以使用工业用以太网(注册商标)以外的现场网络。例如,如果是不进行动作控制的情况,则也可以使用DeviceNet、CompoNet/IP(注册商标)等。在本实施方式的PLC系统SYS中,典型地在本实施方式中,例示采用工业用以太网(注册商标)的EtherCAT(注册商标)作为现场网络2时的结构。另外,在图1中例示具有PLC系统总线11以及现场网络2的双方的PLC系统SYS,但也可以采用仅搭载其中一方的系统结构。例如,也可以通过现场网络2来连接所有的单元。或者,也可以不使用现场网络2,将伺服电机驱动器3直接连接到PLC系统总线11。进而,也可以将现场网络2的通信单元连接到PLC系统总线11,从CPU单元13经由该通信单元进行与连接到现场网络2的设备之间的通信。另外,PLC1也可以是如下的结构:使CPU单元13具有IO单元14的功能和伺服电机驱动器3的功能,从而CPU单元13不经由IO单元14或伺服电机驱动器3等而直接控制控制对象。伺服电机驱动器3经由现场网络2与CPU单元13连接,并且根据来自CPU单元13的指令值来驱动伺服电机4。更具体地说,伺服电机驱动器3从PLC1以一定周期接受如位置指令值、速度指令值、转矩指令值这样的指令值。此外,伺服电机驱动器3从连接到伺服电机4的轴上的位置传感器(旋转编码器)和转矩传感器这样的检测器,取得如位置、速度(典型地,根据本次位置和上次位置之差而算出)、转矩这样的伺服电机4的动作相关的实测值。然后,伺服电机驱动器3将来自CPU单元13的指令值设定为目标值,并将实测值作为反馈值而进行反馈控制。即,伺服电机驱动器3调整用于驱动伺服电机4的电流使得实测值接近目标值。另外,伺服电机驱动器3有时也被称为伺服电机放大器。此外,在图1中示出对伺服电机4和伺服电机驱动器3进行了组合的系统例,但也能够采用其他结构,例如对脉冲电机和脉冲电机驱动器进行了组合的系统。在图1所示的PLC系统SYS的现场网络2中,进一步连接了远程IO终端5。远程IO终端5基本上与IO单元14同样地,进行有关通常的输入输出处理的处理。更具体地说,远程IO终端5包含用于进行在现场网络2下的数据传输相关的处理的通信耦合器(Coupler)52、一个以上的IO单元53。这些单元构成为能够经由远程IO终端总线51相互交换数据。关于PLC支援装置8在后面叙述。<B.CPU单元的硬件结构>接着,参照图2说明CPU单元13的硬件结构。图2是表示本发明的实施方式的CPU单元13的硬件结构的示意图。参照图2,CPU单元13包含微处理器100、芯片组102、主存储器104、非易失性存储器106、系统定时器108、PLC系统总线控制器120、现场网络控制器140、USB连接器110。芯片组102和其他的组件(component)之间经由各种总线而分别耦合。微处理器100以及芯片组102典型地按照通用的计算机架构构成。即,微处理器100对从芯片组102按照内部时钟而依次提供的命名代码进行解释后执行。芯片组102在与所连接的各种组件之间交换内部数据,并且生成微处理器100所需的命令代码。进而,芯片组102具有对在微处理器100中执行运算处理的结果所得到的数据等进行缓存的功能。微处理器100在以下说明的实施方式1~7中,在没有明示是多核的情况下,设为是单核。多核意味着核数目为2以上的情况(也包含核数目为2的情况)。CPU单元13作为存储部件而具有主存储器104以及非易失性存储器106。主存储器104是易失性的存储区域(RAM),保持在对CPU单元13接通电源之后应由微处理器100执行的各种程序。此外,主存储器104作为基于微处理器100执行各种程序时的工作用存储器来使用。作为这样的主存储器104,使用如DRAM(动态随机接入存储器)或SRAM(静态随机接入存储器)这样的设备。另一方面,非易失性存储器106非易失性地保持如实时OS(操作系统)、PLC1的系统程序、用户程序、动作运算程序、系统设定参数这样的数据。这些程序或数据被复制到主存储器104使得微处理器100能够根据需要来访问。作为这样的非易失性存储器106,可使用闪速存储器那样的半导体存储器。或者,也能够使用硬盘驱动器那样的磁记录介质、DVD-RAM(数字视频盘随机接入存储器)那样的光学记录介质等。系统定时器108按照一定周期产生中断信号而提供给微处理器100。典型地,根据硬件的规格而构成为以多个不同的周期分别产生中断信号,但也能够设定为根据OS(操作系统)或BIOS(基本输入输出系统)等,以任意的周期产生中断信号。利用该系统定时器108产生的中断信号,实现后述那样的每个控制循环的控制动作。CPU单元13作为通信电路而具有PLC系统总线控制器120以及现场网络控制器140。这些通信电路进行输出数据的发送以及输入数据的接收。另外,在使CPU单元13本身具有IO单元14或伺服电机驱动器3的功能的情况下,基于通信电路的输出数据的发送以及输入数据的接收,成为将负责这些功能的部分作为通信对方而在CPU单元13的内部进行的发送以及接收。PLC系统总线控制器120控制经由PLC系统总线11的数据交换。更具体地说,PLC系统总线控制器120包含DMA(动态存储器接入)控制电路122、PLC系统总线控制电路124、缓冲存储器126。另外,PLC系统总线控制器120经由PLC系统总线连接器130与PLC系统总线11以内部方式连接。缓冲存储器126作为经由PLC系统总线11输出到其他单元的数据(以下也称为“输出数据”)的发送缓冲器、以及经由PLC系统总线11从其他单元输入的数据(以下也称为“输入数据”)的接收缓冲器发挥作用。另外,通过基于微处理器100的运算处理而生成的输出数据最初被存储到主存储器104。并且,应转发至特定的单元的输出数据从主存储器104被读出后临时保持在缓冲存储器126。此外,应从其他单元转发的输入数据在被暂时保持在缓冲存储器126之后转移到主存储器104。DMA控制电路122进行从主存储器104到缓冲存储器126的输出数据的转发、以及从缓冲存储器126到主存储器104的输入数据的转发。PLC系统总线控制电路124在与连接到PLC系统总线11的其他单元之间,进行发送缓冲存储器126的输出数据的处理以及接收输入数据后存储到缓冲存储器126的处理。典型地,PLC系统总线控制电路124提供PLC系统总线11中的物理层以及数据链路层的功能。现场网络控制器140控制经由了现场网络2的数据交换。即,现场网络控制器140按照所使用的现场网络2的标准,控制输出数据的发送以及输入数据的接收。如上所述,在本实施方式中采用遵循EtherCAT(注册商标)标准的现场网络2,因此使用包含用于进行通常的以太网(注册商标)通信的硬件的现场网络控制器140。在EtherCAT(注册商标)标准中,能够利用实现遵循通常的以太网(注册商标)标准的通信控制的一般的以太网(注册商标)控制器。但是,根据作为现场网络2来采用的工业用以太网(注册商标)的种类,使用与不同于通常的通信协议的专用规格的通信协议对应的特殊规格的以太网(注册商标)控制器。此外,在采用了工业用以太网(注册商标)以外的现场网络的情况下,使用与该标准相应的专用的现场网络控制器。缓冲存储器146作为经由现场网络2输出到其他装置等的数据(关于该数据,在以下也称为“输出数据”)的发送缓冲器、以及经由现场网络2从其他装置等输入的数据(关于该数据,在以下也称为“输入数据”)的接收缓冲器发挥作用。如上所述,通过基于微处理器100的运算处理而生成的输出数据最初被存储到主存储器104。并且,应转发至特定的单元的输出数据从主存储器104被读出后临时保持在缓冲存储器146。此外,应从其他单元转发的输入数据在被暂时保持在缓冲存储器146之后转移到主存储器104。DMA控制电路142进行从主存储器104到缓冲存储器146的输出数据的转发、以及从缓冲存储器146到主存储器104的输入数据的转发。现场网络控制电路144在与连接到现场网络2的其他装置之间,进行发送缓冲存储器146的输出数据的处理以及接收输入数据后存储到缓冲存储器146的处理。典型地,现场网络控制电路144提供现场网络2中的物理层以及数据链路层的功能。USB连接器110是用于连接PLC支援装置8和CPU单元13的接口。典型地,从PLC支援装置8转发的能够由CPU单元13的微处理器100执行的程序等,经由USB连接器110被获取到PLC1。<C.CPU单元的软件结构>下面,参照图3说明本实施方式的用于提供各种功能的软件组。这些软件中包含的命令代码在适当的定时被读出,并由CPU单元13的微处理器100执行。图3是表示本发明的实施方式的由CPU单元13执行的软件结构的示意图。参照图3,作为由CPU单元13执行的软件,分为实时OS200、系统程序210、用户程序236的三层。实时OS200根据CPU单元13的计算机架构而设计,提供微处理器100用于执行系统程序210以及用户程序236的基本的执行环境。该实时OS典型地由PLC的厂家或者专门的软件公司等提供。系统程序210是用于提供作为PLC1的功能的软件组。具体地说,系统程序210包含调度器程序212、输出处理程序214、输入处理程序216、时序命令运算程序232、动作运算程序234、其他的系统程序220。另外,一般输出处理程序214以及输入处理程序216被连续地(作为一体)执行,因此有时也将这些程序统称为IO处理程序218。用户程序236根据用户的控制目的而生成。即,是根据利用PLC系统SYS控制的对象的行(过程(process))等,任意设计的程序。如后述那样,用户程序236与时序命令运算程序232以及动作运算程序234协作,实现用户中的控制目的。即,用户程序236通过利用由时序命令运算程序232以及动作运算程序234提供的命令、函数、功能模块等,实现编程化的动作。因此,有时也将用户程序236、时序命令运算程序232以及动作运算程序234统称为控制程序230。如此,CPU单元13的微处理器100执行在存储部件中存储的系统程序210以及用户程序236。以下,针对各个程序更加详细地说明。用户程序236如上所述那样,根据用户中的控制目的(例如,对象的行或过程)而生成。用户程序236典型地,成为能够在CPU单元13的微处理器100中执行的目标程序形式。该用户程序236通过在PLC支援装置8等中对由梯形图语言记述的源程序进行编译而生成。然后,生成的目标程序形式的用户程序236从PLC支援装置8经由连接线缆10被转发到CPU单元13,并存储到非易失性存储器106等。调度器程序212针对输出处理程序214、输入处理程序216、以及控制程序230,控制在各执行循环中的处理开始以及处理中断后的处理重启。更具体地说,调度器程序212控制用户程序236以及动作运算程序234的执行。在本实施方式的CPU单元13中,将适合动作运算程序234的一定周期的执行循环(控制循环)作为处理整体的共同循环来采用。因此,在一个控制循环内,由于不易完成所有的处理,因此根据应执行的处理的优先级等,区分在各控制循环中应完成执行的处理和可以经过多个控制循环而执行的处理。调度器程序212管理这些已区分的处理的执行顺序等。更具体地说,调度器程序212在各控制循环期间内先执行被赋予更高的优先级的程序。输出处理程序214将通过执行用户程序236(控制程序230)而生成的输出数据重新配置成适合转发到PLC系统总线控制器120和/或现场网络控制器140的形式。PLC系统总线控制器120或者现场网络控制器140需要来自微处理器100的用于执行发送的指示的情况下,输出处理程序214发出那样的指示。输入处理程序216将通过PLC系统总线控制器120和/或现场网络控制器140接收的输入数据重新配置成适合控制程序230使用的形式。时序命令运算程序232在执行用户程序236中使用的某种时序命令时被调用,是为了实现该命令的内容而执行的程序。动作运算程序234按照用户程序236的指示而执行,是在每当执行对如伺服电机驱动器3或脉冲电机驱动器这样的电机驱动器输出的指令值时计算的程序。其他的系统程序220是将图3中单独示出的程序以外的、用于实现PLC1的各种功能的程序集中示出的程序。实时OS200提供用于按照时间的经过而切换执行多个程序的环境。在本实施方式的PLC1中,作为用于将通过CPU单元13的程序执行而生成的输出数据输出(发送)到其他的单元或者其他的装置的事件(中断),初始设定控制循环开始的中断。实时OS200在产生控制循环开始的中断时,将微处理器100中的执行对象从中断发生时刻正在执行的程序切换为调度器程序212。另外,当调度器程序212以及调度器程序212控制其执行的程序的任一个都没有被执行的情况下,实时OS200执行在其他的系统程序210中包含的程序。作为这样的程序,例如,包含有关经由了CPU单元13和PLC支援装置8之间的连接线缆10(USB)等的通信处理的程序。另外,控制程序230以及调度器程序212被存储到作为存储部件的主存储器104以及非易失性存储器106。<D.主存储器结构>下面,参照图4说明CPU单元13的主存储器104中构成的存储区域。图4是表示本发明的实施方式的CPU单元13的主存储器104的区域结构的示意图。参照图4,主存储器104中形成各种程序区域1041、控制程序的作业区域1042、PLC系统总线发送缓冲器1043、PLC系统总线接收缓冲器1044、现场网络发送缓冲器1045、现场网络接收缓冲器1046。各种程序区域1041中除了存储程序本身的区域之外,还包含存储在执行程序时使用的变量的属性数据的区域1041a。当变量是由多个控制程序参照的全局变量时,变量的属性数据可包含能够改写该变量的一个所有者侧控制程序的指定、以及只能参照该变量的一个或者多个参照者侧控制程序的指定。在控制程序的作业区域1042中除了各控制程序230的局部变量区域之外,通过系统程序210生成全局变量区域1042a以及同步缓冲区域1042b。在控制程序的作业区域1042中存储通过控制程序230的执行而生成的输出数据以及控制程序参照的输入数据。PLC系统总线发送缓冲器1043以及PLC系统总线接收缓冲器1044分别临时存储经由PLC系统总线11发送以及接收的数据。同样地,现场网络发送缓冲器1045以及现场网络接收缓冲器1046分别临时存储经由现场网络2发送以及接收的数据。更具体地说,输出处理程序214在需要经由PLC系统总线11发送某一个输出数据时,将对象的输出数据从控制程序的作业区域1042复制到PLC系统总线发送缓冲器1043。这时,输出处理程序214为了能够汇总发送被发送到同一单元的多个输出数据,在PLC系统总线发送缓冲器1043中重新配置输出数据使得面向同一单元的输出数据组被集中。同样地,输出处理程序214在需要经由现场网络2发送某一个输出数据时,将对象的输出数据从控制程序的作业区域1042复制到现场网络发送缓冲器1045。这时,输出处理程序214在现场网络发送缓冲器1045中,将输出数据重新配置成能够作为串行帧来发送的形式。另一方面,输入处理程序216将PLC系统总线控制器120接收并存储到PLC系统总线接收缓冲器1044的输入数据和/或现场网络控制器140接收并存储到现场网络接收缓冲器1046的输入数据复制到控制程序的作业区域1042。这时,输入处理程序216在控制程序的作业区域1042中,将输入数据重新配置成适合控制程序230使用的形式。PLC系统总线控制器120的DMA控制电路122将存储在PLC系统总线发送缓冲器1043的输出数据转发到PLC系统总线控制器120的缓冲存储器146,并且将在缓冲存储器146中存储的输入数据转发到PLC系统总线接收缓冲器1044。现场网络控制器140的DMA控制电路142将在现场网络发送缓冲器1045中存储的输出数据转发到现场网络控制器140的缓冲存储器146,并且将在缓冲存储器146中存储的输入数据转发到现场网络接收缓冲器1046。控制程序的作业区域1042、PLC系统总线发送缓冲器1043、PLC系统总线接收缓冲器1044、现场网络发送缓冲器1045、以及现场网络接收缓冲器1046构成为能够相互独立地控制各自的访问。因此,例如,能够并行执行以下所示的(1)~(3)这样的多个动作。(1)微处理器100进行的、伴随用户程序236的执行的对控制程序的作业区域1042的访问(2)PLC系统总线控制器120的DMA控制电路122进行的、用于主存储器104上的PLC系统总线发送缓冲器1043和/或PLC系统总线接收缓冲器1044与PLC系统总线控制器120内的缓冲存储器126之间的数据转发的、对主存储器104上的PLC系统总线发送缓冲器1043和/或PLC系统总线接收缓冲器1044的访问(3)现场网络控制器140的DMA控制电路142进行的、用于主存储器104上的现场网络发送缓冲器1045和/或现场网络接收缓冲器1046与现场网络控制器140内的缓冲存储器146之间的数据转发的、对主存储器104上的现场网络发送缓冲器1045和/或现场网络接收缓冲器1046的访问。<E.系统程序的整体处理动作>下面,说明系统程序210的整体处理动作。在系统程序210的执行阶段,依次执行控制程序230的执行准备处理以及控制程序230的执行控制处理。更具体地说,系统程序210作为控制程序230的执行准备处理而包含以下的(1)以及(2)的处理。(1)在存储部件内生成用于存储全局变量的全局变量区域的处理(2)关于各个参照者侧控制程序,对于由该参照者侧控制程序参照的每个全局变量,在该参照者侧控制程序参照全局变量时在存储部件内生成代替全局变量区域而设为参照目的地的同步缓冲器的处理进而,控制程序230的执行准备处理还可包含与具体的安装方式相应的其他的执行准备处理。此外,系统程序210作为控制程序230的执行控制处理而包含以下的(3)~(5)的处理。(3)用于使所有者侧控制程序开始执行的所有者侧开始处理(4)如果所有者侧控制程序的执行结束,则将通过该所有者侧控制程序改写的全局变量从全局变量区域复制到与该全局变量对应的同步缓冲器的复制处理(5)用于使参照者侧控制程序开始执行的参照者侧开始处理进而,控制程序230的执行控制处理还可包含与具体的安装方式相应的其他的执行控制处理。图5是表示本发明的实施方式的CPU单元中的系统程序的整体处理的流程图。如图5所示,首先,执行控制程序230的执行准备处理(步骤S1),接着执行控制程序230的执行控制处理(步骤S2)。在控制程序230的执行准备处理(步骤S1)中包含的各处理的执行顺序被适当设计。同样地,在控制程序230的执行控制处理(步骤S2)中包含的各处理,伴随重复执行控制程序230而重复执行,其执行顺序依赖于具体地实施方式。以下,作为具体的安装方式的典型例,说明实施方式1~7。<F.单一同步缓冲器方式(实施方式1)>(f1:概要)在实施方式1中,设想以分时方式执行多个控制程序的情况。这时,存在由多个控制程序参照的全局变量。对于该全局变量,设定能够进行改写的一个所有者侧控制程序,并且设定只能参照全局变量的一个或者多个参照者侧控制程序。以下,将在所有者侧控制程序中设定的控制程序称为“全局变量的所有者”或者简称为“所有者”。以下,例示有别于执行循环的大小关系,将控制程序中的其中一个指定为全局变量的所有者的情况。(f2:执行优先级高且执行循环短的一方的控制程序为全局变量的所有者)在以下所示的例子中,设想执行执行优先级和执行循环的长度不同的多个控制程序(控制程序1~3)的状态。这时,设控制程序的执行优先级与其他的控制程序2以及3相比高,并且控制程序1的执行循环与其他的控制程序2以及3相比短。在这样的状况下,设为执行循环短的一方的控制程序1被设定为全局变量的所有者(所有者侧控制程序),控制程序2以及3被设定为全局变量的参照者(参照者侧控制程序)。图6是表示实施方式1的执行动作的时序图。参照图6,假设执行控制程序1~3。图7是针对图6所示的控制循环1以及2放大示出的时序图。图8是表示实施方式1的执行动作的流程图。沿图6的控制程序1~3的各自的时间轴示出的虚线的圆角矩形表示对应的控制程序的执行循环。例如,控制程序1将一次的控制循环设为执行循环,同样地,控制程序2以及3分别将两次以及4次的控制循环设为执行循环。另外,在以下用于说明的时序图中以同样的方法表示执行循环。此外,图6的横向的实线的箭头标记表示数据的交换,此外,与各箭头标记关联示出的数字表示对应的数据反映了哪个控制循环的状态。例如,在被赋予(1)的箭头标记中,表示通过在控制循环1中执行控制程序而生成的数据被交换。以下,在用于说明的时序图中也以同样的方法来表示执行循环。在图6所示的例子中,由于控制程序1是全局变量的所有者,因此控制程序1将该执行的结果等写入全局变量区域1042a内的全局变量区域1。另一方面,在参照者侧控制程序中设定的控制程序2以及3参照在同步缓冲区域1042b内的各自对应的同步缓冲器2以及3中存储的数据而执行处理。也可以将执行结果等分别写入对应的同步缓冲器2以及3。此外,同步缓冲器2以及3的数据按照如后述那样的顺序,在与全局变量区域1之间保持同步。图6中,沿着控制程序1~3的各自的时间轴表示其控制程序的执行状态。更具体地说,在应执行预先决定的处理的执行循环内,监视作为尚未开始处理的状态的“执行前”、在该执行循环内正在进行处理的“执行中”、以及在该执行循环内处理已经完成的“执...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1