CN113841093B - 可编程逻辑控制器、计算机、方法以及计算机可读取的记录介质 - Google Patents
可编程逻辑控制器、计算机、方法以及计算机可读取的记录介质 Download PDFInfo
- Publication number
- CN113841093B CN113841093B CN201980096578.2A CN201980096578A CN113841093B CN 113841093 B CN113841093 B CN 113841093B CN 201980096578 A CN201980096578 A CN 201980096578A CN 113841093 B CN113841093 B CN 113841093B
- Authority
- CN
- China
- Prior art keywords
- program
- block
- information
- executed
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
可编程逻辑控制器(100)所具有的程序执行部(120)反复执行使用作为可编程逻辑控制器(100)用的编程语言的顺序功能图而创建的程序。索引信息存储部(140)对程序步信息进行存储,程序步信息对包含于程序、记述有可编程逻辑控制器(100)所执行的处理的程序步唯一地进行确定。每当程序执行部(120)执行程序步时,追踪执行部(150)对包含程序步信息和确定程序被反复执行的次数即执行循环数的信息的日志进行记录。
Description
技术领域
本发明涉及可编程逻辑控制器、计算机、方法以及计算机可读取的记录介质。
背景技术
可编程逻辑控制器通过在每个执行周期执行控制程序的各命令而对作为控制对象的设备进行控制。对可编程逻辑控制器所执行的控制程序进行记载的编程语言之一是SFC(Sequential Function Chart)。在由SFC记载的控制程序中记载有对可编程逻辑控制器所执行的处理进行记述的程序步和用于向该程序步进行转移的转移条件。例如,在图11所示的例子中,在执行了程序步0之后,在转移条件1成立的情况下,执行程序步1,在转移条件2成立的情况下,执行程序步2。在执行了程序步1之后,如果转移条件3成立,则执行程序步3。在执行了程序步2之后,如果转移条件4成立,则执行程序步3。
为了进行由SFC记载的控制程序的调试,需要对程序步的执行顺序、各程序步的执行次数等进行追踪(trace)。
在专利文献1中记载了以下内容,即,为了进行由SFC记载的控制程序的追踪,每当执行程序内的程序步时,可编程逻辑控制器将包含该程序步的编号的数据存储于追踪数据存储部,外围装置从追踪数据存储部读取该数据,将执行路径以及跳转程序步的执行顺序的时序图显示于显示器。
专利文献1:日本特开2001-5504号公报
发明内容
在专利文献1所记载的结构中,依次存储包含程序步的编号的数据,基于存储的数据而将执行路径以及跳转程序步的执行顺序的时序图显示于显示器,因而能够根据存储的数据,在例如开始追踪至结束追踪的期间,对程序步的执行顺序进行追踪。但是,在专利文献1所记载的结构中,未将控制程序的执行次数与程序步的编号关联地进行存储,仅是将所执行的程序步以时序图显示。但是,在工厂内实际使用的控制程序是包含大量的跳转、程序步的复杂控制程序,在专利文献1所记载的技术中,以控制程序的执行周期为单位而掌握在该执行周期内执行的程序步的执行顺序以及执行次数对于进行控制程序的调试的用户来说是非常困难的。
本发明就是鉴于上述情况而提出的,其目的在于以执行周期为单位而对由SFC记载的程序的程序步的执行路径以及执行次数进行追踪。
为了达成上述目的,本发明的可编程逻辑控制器所具有的执行单元反复执行程序,该程序是使用作为可编程逻辑控制器用的编程语言的顺序功能图而创建的,该程序包含具有记述了可编程逻辑控制器所执行的处理的程序步的多个程序块,程序步被跨程序块而并行地执行。分配单元在执行单元执行程序之前,生成在程序内对程序步唯一地进行确定的信息即程序步信息,将生成的程序步信息分配给各程序步。日志记录单元在执行单元执行程序的期间,作为表示程序步的执行路径的追踪日志而将确定被执行的程序步的程序步信息与程序的被反复执行的次数即执行循环数相关联地存储于存储部。在程序的创建时,分别向各程序块分配有对程序块进行识别的程序块识别信息,向各程序步分配有在程序块内对程序步进行识别的程序块内程序步识别信息,被分配给各程序步的程序步信息是与被分配给该程序步的程序块内程序步识别信息不同的信息。向由分配单元分配有相同的程序步信息、跨程序块而并行地执行的程序步,分配有以所属的程序块为单位而固有的程序块内程序步识别信息。
发明的效果
就本发明的可编程逻辑控制器而言,作为表示程序步的执行路径的追踪日志而将确定被执行的程序步的程序步信息与程序的被反复执行的次数即执行循环数相关联地存储于存储部。通过具有这样的结构,从而能够以执行周期为单位而对由SFC记载的程序的程序步的执行路径以及执行次数进行追踪。
附图说明
图1是表示本发明的实施方式涉及的可编程逻辑控制器和开发工具的功能结构的框图。
图2是表示实施方式涉及的可编程逻辑控制器和开发工具的硬件结构的框图。
图3是表示实施方式涉及的控制程序的一个例子的图。
图4是表示实施方式涉及的在索引表中储存的数据的一个例子的图。
图5是表示实施方式涉及的追踪日志的一个例子的图。
图6是实施方式涉及的索引分配处理的流程图。
图7是实施方式涉及的追踪处理的流程图。
图8A是表示实施方式涉及的追踪日志的显示画面的例子的图(其1)。
图8B是表示实施方式涉及的追踪日志的显示画面的例子的图(其2)。
图8C是表示实施方式涉及的追踪日志的显示画面的例子的图(其3)。
图8D是表示实施方式涉及的追踪日志的显示画面的例子的图(其4)。
图8E是表示实施方式涉及的追踪日志的显示画面的例子的图(其5)。
图9A是表示实施方式涉及的追踪日志的显示画面的其它例子的图。
图9B是表示对实施方式涉及的追踪日志的时序图进行显示的画面的例子的图。
图10是表示在索引表中储存的数据的其它例子的图。
图11是表示由SFC记述的程序的一个例子的图。
具体实施方式
以下,一边参照附图一边对本发明的实施方式涉及的可编程逻辑控制器100详细进行说明。
(实施方式)
图1所示的可编程逻辑控制器100在控制系统、生产系统等中按照从检测器供给来的输入信号而执行控制程序的命令,将输出信号供给至被控制设备,对被控制设备进行控制。检测器例如是传感器、开关。被控制设备例如是致动器、电磁阀、显示灯。
可编程逻辑控制器100(以下,PLC 100)从控制程序的最初的命令开始至最后的命令为止,依次执行命令,如果执行了最后的命令,则重新从最初的命令开始依次执行命令。有时将PLC 100从控制程序的最初的命令执行至最后的命令称为扫描。有时将PLC 100完成一轮控制程序的命令的执行的时间称为扫描时间。
在实施方式中,PLC 100执行由顺序功能图(以下,SFC)记载的控制程序。PLC 100具有在控制程序的执行中对程序步的执行路径进行追踪的功能。
开发工具500是安装了具有程序的创建功能的专用应用程序的个人计算机。开发工具500除了程序的创建功能以外,还具有基于PLC 100所记录的追踪日志对表示程序步的执行路径的信息进行显示的功能。
如图2所示,作为硬件结构,PLC 100具有对各种程序以及数据进行存储的非易失性存储器11、对追踪日志进行存储的易失性存储器12、与检测器801以及被控制设备802进行数据的收发的输入输出接口13、与开发工具500进行通信的连接接口14和对PLC 100整体进行控制的MPU(Micro Processing Unit)15。非易失性存储器11、易失性存储器12、输入输出接口13、连接接口14经由总线19而与MPU 15连接,与MPU 15进行通信。
非易失性存储器11对用于实现PLC 100的各种功能的程序和在执行程序时使用的数据进行存储。例如,非易失性存储器11存储对MPU 15进行控制的固件。在实施方式中,作为PLC 100的固件的功能,包含执行追踪的执行所需的在先处理的功能和对用户程序111的程序步的执行进行追踪的功能。并且,非易失性存储器11对应用程序进行存储。在实施方式中,在非易失性存储器11储存有用户程序111。非易失性存储器11例如包含EEPROM(Electrically Erasable Programmable Read-Only Memory)、闪存、硬盘驱动器。
用户程序111是用户使用SFC而开发的程序,是使MPU 15实现对被控制设备进行控制的功能的控制程序。用户例如是PLC 100的管理者。
易失性存储器12被用作对追踪日志进行储存的存储器。并且,易失性存储器12被用作MPU 15的工作存储器。易失性存储器12例如包含RAM(Random Access Memory)。
输入输出接口13是PLC 100用于与检测器801以及被控制设备802进行通信的连接接口。输入输出接口13将从MPU 15供给来的数据转换为电信号,经由连接电缆701而将转换后的信号发送至被控制设备802。另外,输入输出接口13将经由连接电缆701从检测器801接收到的电信号复原为数据而输出至MPU 15。
连接接口14例如包含USB控制器,将从MPU 15供给来的数据转换为电信号,经由连接电缆702将转换后的信号发送至开发工具500。另外,连接接口14经由连接电缆702而接收由开发工具500输出的电信号,将接收到的电信号复原为数据而输出至MPU 15。连接电缆702例如是USB电缆。
MPU 15执行在非易失性存储器11存储的各种程序而实现PLC 100的各种功能。例如,MPU 15通过执行在非易失性存储器11储存的用户程序111而进行使用了从检测器801供给来的输入信号所示的值的运算,将基于表示运算结果的值的输出信号供给至被控制设备802。
作为硬件结构,开发工具500具有对各种程序以及数据进行存储的存储器51、对用户的输入操作进行检测的输入装置52、对图像进行显示的显示装置53、与PLC 100进行通信的连接接口54和对开发工具500整体进行控制的CPU(Central Processing Unit)55。存储器51、输入装置52、显示装置53、连接接口54经由总线59而与CPU 55连接,与CPU 55进行通信。
存储器51包含易失性存储器和非易失性存储器。存储器51对用于实现开发工具500的各种功能的程序和在执行程序时使用的数据进行存储。在实施方式中,存储器51对日志显示程序511进行存储。日志显示程序511是使CPU 55实现对追踪日志进行显示的功能的程序。并且,存储器51被用作CPU 55的工作存储器。
输入装置52包含键盘、鼠标等输入装置,对用户的输入操作进行检测,将表示检测到的用户的输入操作的信号供给至CPU 55。显示装置53包含显示器,将基于从CPU 55供给来的信号的图像显示于显示器。
连接接口54例如包含USB控制器,将从CPU 55供给来的数据转换为电信号,将转换后的信号经由连接电缆702而发送至PLC 100。另外,连接接口54经由连接电缆702而接收由PLC 100输出的电信号,将接收到的电信号复原为数据而输出至CPU 55。
CPU 55执行在非易失性存储器11存储的各种程序而实现开发工具500的各种功能。在实施方式中,CPU 55执行日志显示程序511,将PLC 100所记录的追踪日志显示于显示装置53。
接着,一边参照图1一边对PLC 100的功能结构进行说明。PLC 100在功能上包含对控制程序进行存储的程序存储部110、执行控制程序的程序执行部120、将索引分配给控制程序的各程序步的追踪在先处理部130、对与索引相关的数据进行存储的索引信息存储部140、对程序步的执行进行追踪的追踪执行部150和对追踪日志进行存储的追踪日志存储部160。
程序存储部110存储PLC 100为了对被控制设备进行控制而执行的控制程序。控制程序与图2所示的用户程序111相当。程序存储部110的功能由图2所示的非易失性存储器11实现。
在图3中示出用户程序111的一个例子。在图3所示的例子中,用户程序111包含多个程序块。程序块例如是将PLC 100所执行的处理以功能为单位进行划分而得到的。
由SFC记载的用户程序111以如下方式执行。用户程序111由于包含多个程序块,因此以从程序块编号小的程序块到程序块编号大的程序块的顺序进行处理。此外,在该扫描中,未激活的程序块的程序步没有被处理。激活状态的程序块的激活的程序步被依次处理。
一边参照图3一边对程序步的处理的例子进行说明。例如,设为在第N(N是正的整数)次扫描时程序块0为激活状态,程序块0的程序步0激活。在这种情况下,执行程序块0的程序步0。在执行了程序块0的程序步0时,在程序块0的程序步0与程序块0的程序步2之间的转移条件T02成立时,程序块0的程序步0变为未激活,程序块0的程序步2激活。另一方面,在转移条件T02不成立时,程序块0的程序步2保持未激活状态,程序块0的程序步0保持激活状态。例如,设为程序块0的程序步0与程序块0的程序步2之间的转移条件T02成立。在这种情况下,程序块0的程序步0变为未激活,程序块0的程序步2激活。
接着,如果程序块1为激活状态,则执行程序块1的激活的程序步,如果程序块1为未激活状态,则程序块1的所有程序步都不被执行。例如,设为程序块1为激活状态,程序块1的程序步1激活。在这种情况下,执行程序块1的程序步1。在执行了程序块1的程序步1时,在程序块1的程序步1与程序块1的程序步3之间的转移条件T12成立时,程序块1的程序步1变为未激活,程序块1的程序步3激活。另一方面,在转移条件T12不成立时,程序块1的程序步1保持激活状态。
接着,如果程序块2为激活状态,则执行程序块2的激活的程序步,如果程序块2为未激活状态,则程序块2的所有程序步都不被执行。
在第N+1次扫描时,在程序块0为激活状态的情况下,执行程序块0的激活状态的程序步。例如,设为程序块0为激活状态,程序块0的程序步2激活。在这种情况下,执行程序块0的程序步2。在执行了程序块0的程序步2时,例如在程序块0的程序步2与程序块0的程序步0之间的转移条件T04成立时,程序块0的程序步2变为未激活,程序块0的程序步0激活。
接着,如果程序块1为激活状态,则执行程序块1的激活的程序步,如果程序块1为未激活状态,则程序块1的所有程序步都不被执行。并且,如果程序块2为激活状态,则执行程序块1的激活的程序步,如果程序块2为未激活状态,则程序块1的所有程序步都不被执行。
在第N+2次扫描时,在程序块0为激活状态的情况下,执行程序块0的激活状态的程序步。例如,设为程序块0为激活状态,程序块0的程序步0激活。在这种情况下,执行程序块0的程序步0。在执行了程序块0的程序步0时,例如在程序块0的程序步0与程序块0的程序步2之间的转移条件T02成立时,程序块0的程序步0变为未激活,程序块0的程序步2激活。
图1所示的程序执行部120在每个执行周期执行控制程序。程序执行部120的功能由图2所示的MPU 15实现。程序执行部120是本发明的执行单元的一个例子。
图1所示的追踪在先处理部130对程序存储部110所存储的控制程序中的程序步分配唯一的编号,将表示程序步与编号之间的对应关系的数据储存于索引信息存储部140。具体地说,追踪在先处理部130对如图3所示的用户程序111的各程序步分配在用户程序111内唯一的序列编号。将该序列编号称为索引。有时将对程序步分配索引的处理称为索引分配处理。追踪在先处理部130将索引分配处理例如作为电源接通后的初始化处理的一部分而执行。追踪在先处理部130的功能由图2所示的MPU 15实现。追踪在先处理部130是本发明的分配单元的一个例子。
追踪在先处理部130对程序步分配索引是依据以下这样的理由。如上所述,用户程序111的多个程序块的程序步在同一扫描中被并行地执行。程序步由于是跨程序块而执行的,因此如果仅记录在创建用户程序111时编制的程序步编号,则无法确定程序步的执行路径和每个程序步的执行次数。
并且,有时在用户程序111内例如存在多个针对每个功能而将处理汇总在一起的程序块。表示程序步的程序步编号是在程序块内编制出的,因此,有时在不同程序块中存在具有相同程序步编号的程序步。在这种情况下,在追踪时,如果仅记录在创建用户程序111时编制的程序步编号,则无法确定该程序步属于哪个程序块。
索引信息存储部140对由追踪在先处理部130分配的索引的数据进行存储。具体地说,索引信息存储部140具有如图4所示的索引表1401。在索引表1401储存向由程序块编号和程序步编号确定的程序步分配的索引。索引信息存储部140的功能由图2所示的非易失性存储器11实现。控制程序中的程序步是本发明的程序步的一个例子。索引信息存储部140是本发明的程序步信息存储单元的一个例子。在索引表1401储存的数据是本发明的程序步信息的一个例子。程序块编号是对本发明的程序块进行识别的识别信息的一个例子。程序步编号是在本发明的程序块内对程序步进行识别的识别信息的一个例子。
图1所示的追踪执行部150对程序执行部120所执行的程序步的执行进行追踪,将追踪日志储存于追踪日志存储部160。追踪执行部150的功能由图2所示的MPU 15实现。追踪执行部150是本发明的日志记录单元的一个例子。
具体地说,追踪执行部150如果从开发工具500接收到执行追踪的开始指示,则开始追踪。设为追踪执行部150具有对程序执行部120执行控制程序的扫描次数进行计数的计数器(以下,扫描计数器)。以下,有时将程序执行部120执行控制程序的扫描次数称为扫描数。扫描计数器的初始值例如是“1”。如果追踪的程序步是最后的程序步,则追踪执行部150对扫描计数器的值例如加上1。
如果程序执行部120执行程序步,则追踪执行部150从图4所示的索引表1401读取被分配给该程序步的索引,在扫描计数器的值所示的扫描中,将表示执行了索引的值所示的程序步这一内容的日志储存于追踪日志存储部160。每当程序执行部120执行程序步时,追踪执行部150将日志储存于追踪日志存储部160。另外,如果程序执行部120执行控制程序的最后的程序步,则追踪执行部150使扫描计数器的值增加。这是因为程序执行部120完成了控制程序的1次扫描。
追踪日志存储部160对表示追踪执行部150所记录的追踪日志的数据进行存储。在图5中示出在追踪日志存储部160储存的追踪日志的一个例子。在图示的例子中,按扫描次数,依次记录有已执行的程序步的索引。设为在最左侧记载的索引表示在该扫描中最先执行的程序步,在最右侧记载的索引表示在该扫描中最后执行的程序步。追踪日志存储部160的功能由图2所示的易失性存储器12实现。追踪日志所包含的扫描次数是确定本发明的执行循环数的信息的一个例子。
如图1所示,开发工具500在功能上包含指示PLC 100执行追踪的追踪执行指示部510、从PLC 100读取包含追踪日志的数据的追踪日志读取部520和基于追踪日志而对追踪的结果进行显示的显示部530。
追踪执行指示部510如果从用户接收到开始执行追踪的指示,则向PLC 100输出执行程序的追踪的开始指示。另外,追踪执行指示部510接收来自用户的指示,向PLC 100作出使得追踪的执行停止的指示。追踪执行指示部510的功能由图2所示的输入装置52、连接接口54和CPU 55实现。
追踪日志读取部520如果从用户接收到读取追踪日志的指示,则从PLC 100读取追踪日志以及日志的显示所需的数据。具体地说,追踪日志读取部520读取在PLC 100的追踪日志存储部160储存的追踪日志、在索引信息存储部140储存的索引表1401的数据和在程序存储部110储存的控制程序,将读取到的控制程序输出至显示部530。追踪日志读取部520的功能由图2所示的输入装置52、连接接口54和CPU 55实现。追踪日志读取部520是本发明的读取单元的一个例子。
显示部530如果被从追踪日志读取部520供给了追踪日志、索引表1401的数据和控制程序,则生成表示追踪的结果的图像,将生成的图像显示于显示装置53。显示部530的功能由图2所示的显示装置53和CPU 55实现。显示部530是本发明的显示单元的一个例子。
接下来,对追踪在先处理部130在追踪之前向控制程序的程序步各自分配索引的处理进行说明。追踪在先处理部130执行下述的索引分配处理作为PLC 100的初始化处理的一部分。
如图6所示,追踪在先处理部130在向控制程序内的全部程序步都分配了索引之前(步骤S11;No),向下一个程序步分配索引,将索引、程序步所属的程序块编号和程序步的程序步编号储存于图4所示的索引表1401(步骤S12)。追踪在先处理部130如果已向控制程序内的全部程序步分配了索引(步骤S11;Yes),则结束索引分配处理。以上是索引分配处理。
接着,说明追踪执行部150对控制程序的程序步的执行进行追踪的处理。
如果开发工具500的追踪执行指示部510按照用户的指示而输出追踪的执行指示,则追踪执行部150开始追踪处理。例如,用户在从开发工具500指示了追踪的开始之后,将PLC 100的动作模式切换为控制程序的执行模式。由此,程序执行部120开始控制程序的执行。
如图7所示,如果追踪执行部150判别为程序执行部120已经执行了程序步(步骤S21;Yes),则追踪执行部150从索引表1401读取被执行的程序步的索引(步骤S22)。接着,追踪执行部150读取当前的扫描计数器的值,取得当前的扫描数(步骤S23)。追踪执行部150将在步骤S22中读取到的索引的值作为在当前的扫描数所示的扫描中被执行的程序步而将程序步的日志记录于追踪日志存储部160(步骤S24)。
追踪执行部150判别作为对象的程序步是否是控制程序的最后的程序步(步骤S25)。在该程序步是控制程序的最后的程序步的情况下(步骤S25;Yes),追踪执行部150使扫描计数器的值增加(步骤S26),在不是最后的程序步的情况下(步骤S25;No),执行步骤S27。
在步骤S27中,追踪执行部150判别是否从开发工具500接收到追踪的停止指示(步骤S27)。在未接收到追踪的停止指示的情况下(步骤S27;No),追踪执行部150再次执行步骤S21的处理。另一方面,在接收到追踪的停止指示的情况下(步骤S27;Yes),追踪执行部150结束追踪处理。以上是追踪处理。如上所述,追踪执行部150执行追踪处理,从而如图5所示的日志被储存于PLC 100的追踪日志存储部160。
设为用户在作出了追踪的停止指示之后,指示对追踪日志进行显示。响应于此,追踪日志读取部520从PLC 100读取追踪日志、索引表1401的数据和控制程序。追踪日志读取部520将读取到的数据输出至显示部530。
例如,设为显示部530被供给了如图5所示的追踪日志。在图示的例子中,在第1次扫描时执行程序块0的程序步0和程序块1的程序步0,在第2次扫描时执行程序块0的程序步2和程序块1的程序步2。在第3次扫描时执行程序块0的程序步0和程序块1的程序步2。显示部530根据扫描1的追踪日志对如图8A所示的画面进行显示。
这里,以用户能够从第1次的扫描的日志视觉辨认出索引1所示的程序块0的程序步0最先被执行的方式,显示部530如图8A所示对用户程序111进行显示,对程序块0的程序步0标上阴影而进行显示。并且,显示部530将程序块0的程序步0至此为止被执行的次数一并进行显示。在图示的例子中,由于在第1次扫描之前,程序块0的程序步0未被执行,因此,对程序块0的程序步0显示有“1”作为执行次数。这样,显示部530在程序步编号的旁边显示程序步的执行次数。由此,用户能够视觉辨认出程序步被执行了几次。并且,显示部530对扫描数进行显示。
这里,设为用户按下了“下一个程序步”的按钮。响应于此,显示部530显示如图8B所示的画面。在图示的例子中,显示部530对接下来执行的程序步即程序块1的程序步0标上阴影而显示。并且,设为用户按下了“下一个程序步”的按钮。响应于此,显示部530显示如图8C所示的画面。在图示的例子中,显示部530对程序块0的程序步2标上阴影而显示。
这里,设为用户按下了“下一个程序步”的按钮。响应于此,显示部530显示如图8D所示的画面。在图示的例子中,显示部530对接下来执行的程序步即程序块1的程序步2标上阴影而显示。这里,设为用户按下了“下一个程序步”的按钮。响应于此,显示部530显示如图8E所示的画面。在图示的例子中,显示部530对接下来执行的程序步即程序块0的程序步0标上阴影而显示。由于在第2次扫描的时间点,程序块0的程序步0被执行了2次,因此,对程序块0的程序步0显示有“2”作为执行次数。
另外,例如,当在显示有图8E的状态下,用户按下了“前一个程序步”的按钮的情况下,显示部530对如图8D所示的表示之前执行的程序步的画面进行显示。
开发工具500以这样的方式对追踪日志进行显示,从而用户能够逐个确认程序步的执行路径。并且,开发工具500将程序步的执行次数与程序步编号相关联地显示。由此,用户能够视觉辨认出程序步被执行了几次。
另外,显示部530也可以如图9A所示,将在各扫描中执行的程序步显示于1个画面上。显示部530以能够视觉辨认出在1次扫描中执行了程序块0的程序步0、程序块1的程序步1的方式,对程序块0的程序步0、程序块1的程序步1标上阴影而进行显示。并且,显示部530对表示执行各程序步的顺序的编号进行显示。在图示的例子中,显示有表示1次扫描的追踪日志的画面,但例如如果用户进行下拉操作,则显示部530对表示所指定的扫描的追踪日志的画面进行显示。
另外,显示部530还能够显示如图9B所示的时序图。在图示的例子中,显示有第1次至第4次的扫描,但用户通过滑动滚动条B1,从而能够显示第5次及其后的扫描时的时序图。另外,在图示的例子中,从程序块0的程序步0至程序块2的程序步0为止得到显示,但用户通过滑动滚动条B2,从而能够显示之后的程序步的时序图。
开发工具500以这样的方式对追踪日志进行显示,从而用户能够确认程序步的执行的经过。
如以上所说明的那样,实施方式涉及的PLC 100将扫描数与确定程序步的索引相关联地作为追踪日志而进行记录。由此,用户能够以执行周期为单位而确认程序的程序步的执行路径以及执行次数。
就PLC 100而言,由于在控制程序内对各程序步分配唯一的编号,因而即使程序被以功能为单位划分为多个程序块,在不同的程序块中存在被分配了相同编号的程序步,也能够实现程序步的执行路径以及执行次数的追踪。
另外,通过使用索引作为在追踪日志中记录的确定程序步的程序步信息,从而与例如将程序块编号和程序步编号记录于追踪日志相比,能够抑制储存追踪日志所需的存储器容量。
在上述实施方式中,说明了使用数值作为索引的例子,但不限于此。例如,也可以如图10所示,索引包含数值和文字。在图示的例子中,索引包含程序块编号和程序步编号,例如“B02S00”表示程序块2的程序步0。
在实施方式中,说明了PLC 100将索引分配给各命令的例子,但也可以例如由开发工具500对各命令分配索引,创建例如图4所示的索引表1401的数据,将创建的数据发送至PLC 100。
在实施方式中,说明了追踪日志存储部160的功能由易失性存储器12实现的例子,但不限于此。追踪日志存储部160的功能也可以由非易失性存储器实现。作为非易失性存储器,例如能够使用诸如USB(Universal Serial Bus)存储器、SD(Secure Digital)存储卡这样的闪存。
在实施方式中,说明了固件具有执行追踪的执行所需的在先处理的功能和对控制程序的程序步的执行进行追踪的功能的例子,但不限于此。例如,也可以是OS(OperatingSystem)具有这些功能。或者,也可以在PLC 100的非易失性存储器11储存有使MPU 15实现执行追踪的执行所需的在先处理的功能的程序和使MPU 15实现对控制程序的程序步的执行进行追踪的功能的程序。在这种情况下,MPU 15通过执行这些程序,从而实现执行追踪的执行所需的在先处理的功能和对控制程序的程序步的执行进行追踪的功能。或者,MPU 15也可以通过执行在经由网络而连接的其它计算机中储存的程序来实现这些功能。
作为对上述实现PLC 100的功能的程序进行记录的记录介质,能够使用包含磁盘、光盘、光磁盘、闪存、半导体存储器、磁带的计算机可读取记录介质。
另外,实现PLC 100的功能的手段不限于软件,也可以使其一部分或者全部由专用的硬件实现。例如,作为专用的硬件,可以使用以FPGA(Field Programmable Gate Array)或者ASIC(Application Specific Integrated Circuit)为代表的电路。
本发明能够在不脱离广义的精神和范围的情况下,实现各种实施方式以及变形。另外,上述实施方式用于对本发明进行说明,并不限定本发明的范围。即,本发明的范围不是由实施方式而是由权利要求书示出的。并且,在权利要求书的范围内及与其等同的发明的意义的范围内实施的各种变形被视为处在本发明的范围内。
标号的说明
B1、B2滚动条,11非易失性存储器,12易失性存储器,13输入输出接口,14、54连接接口,15、140MPU,19、59总线,51存储器,52输入装置,53显示装置,55CPU,100可编程逻辑控制器(PLC),110程序存储部,111用户程序,120程序执行部,130追踪在先处理部,140索引信息存储部,150追踪执行部,160追踪日志存储部,500开发工具,510追踪执行指示部,511日志显示程序,520追踪日志读取部,530显示部,701、702连接电缆,801检测器,802被控制设备,1401、1402索引表
Claims (8)
1.一种可编程逻辑控制器,其具有:
执行单元,其反复执行程序,该程序是使用作为可编程逻辑控制器用的编程语言的顺序功能图而创建的,该程序包含具有记述了所述可编程逻辑控制器所执行的处理的程序步的多个程序块,所述程序步被跨所述程序块而并行地执行;
分配单元,其在所述执行单元执行所述程序之前,生成在所述程序内对所述程序步唯一地进行确定的信息即程序步信息,将生成的所述程序步信息分配给各所述程序步;以及
日志记录单元,其在所述执行单元执行所述程序的期间,将确定被执行的所述程序步的所述程序步信息与所述程序的被反复执行的次数即执行循环数相关联地存储于存储部,作为表示所述程序步的执行路径的追踪日志,
在所述程序的创建时,分别向各所述程序块分配有对所述程序块进行识别的程序块识别信息,向各所述程序步分配有在所述程序块内对所述程序步进行识别的程序块内程序步识别信息,被分配给各所述程序步的所述程序步信息是与被分配给该程序步的程序块内程序步识别信息不同的信息,
向由所述分配单元分配有相同的程序步信息、跨所述程序块而并行地执行的程序步,分配有以所属的所述程序块为单位而固有的程序块内程序步识别信息。
2.根据权利要求1所述的可编程逻辑控制器,其中,
还具有对所述程序步信息进行存储的程序步信息存储单元,
所述分配单元对所述程序步各自分配能够在所述程序内唯一地确定所述程序步的唯一的值,生成包含所述唯一的值、所述程序块识别信息和所述程序块内程序步识别信息在内的程序步信息,将生成的所述程序步信息储存于所述程序步信息存储单元。
3.根据权利要求2所述的可编程逻辑控制器,其中,
所述分配单元在所述执行单元执行所述程序之前,将生成的所述程序步信息储存于所述程序步信息存储单元。
4.根据权利要求1或3所述的可编程逻辑控制器,其中,
在对所述可编程逻辑控制器接通电源,所述可编程逻辑控制器执行初始化处理时,所述分配单元生成所述程序步信息。
5.一种计算机,其具有:
读取单元,其从权利要求2至4中任一项所述的可编程逻辑控制器的所述存储部读取所述追踪日志,从所述程序步信息存储单元读取所述程序步信息;以及
显示单元,其将根据所述追踪日志所包含的所述程序步信息确定的所述程序步与所述追踪日志所包含的所述执行循环数相关联地显示。
6.根据权利要求5所述的计算机,其中,
所述显示单元对与表示所述程序步的程序步编号相关联地显示有执行了所述程序步的执行循环数的图像进行显示。
7.一种方法,其包含以下阶段:
反复执行程序的可编程逻辑控制器在执行所述程序之前,将唯一地确定程序步的信息即程序步信息分配给各所述程序步,该程序是使用作为可编程逻辑控制器用的编程语言的顺序功能图而创建的,该程序包含具有记述了所述可编程逻辑控制器所执行的处理的所述程序步的多个程序块,所述程序步被跨所述程序块而并行地执行;以及
在所述可编程逻辑控制器执行所述程序的期间,将确定被执行的所述程序步的所述程序步信息与所述程序的被反复执行的次数即执行循环数相关联地进行存储,
在所述程序的创建时,分别向各所述程序块分配有对所述程序块进行识别的程序块识别信息,向各所述程序步分配有在所述程序块内对所述程序步进行识别的程序块内程序步识别信息,被分配给各所述程序步的所述程序步信息是与被分配给该程序步的程序块内程序步识别信息不同的信息,
向被分配有相同的程序步信息、跨所述程序块而并行地执行的程序步,分配有以所属的所述程序块为单位而固有的程序块内程序步识别信息。
8.一种记录有程序的计算机可读取的记录介质,该程序使反复执行程序的可编程逻辑控制器进行以下动作:
在执行所述程序之前,将唯一地确定程序步的信息即程序步信息分配给各所述程序步,
在执行所述程序的期间,将确定被执行的所述程序步的所述程序步信息与所述程序的被反复执行的次数即执行循环数相关联地进行存储,
该程序是使用作为可编程逻辑控制器用的编程语言的顺序功能图而创建的,该程序包含具有记述了所述可编程逻辑控制器所执行的处理的所述程序步的多个程序块,所述程序步被跨所述程序块而并行地执行,
在所述程序的创建时,分别向各所述程序块分配有对所述程序块进行识别的程序块识别信息,向各所述程序步分配有在所述程序块内对所述程序步进行识别的程序块内程序步识别信息,被分配给各所述程序步的所述程序步信息是与被分配给该程序步的程序块内程序步识别信息不同的信息,
向被分配有相同的程序步信息、跨所述程序块而并行地执行的程序步,分配有以所属的所述程序块为单位而固有的程序块内程序步识别信息。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/020513 WO2020235095A1 (ja) | 2019-05-23 | 2019-05-23 | プログラマブルロジックコントローラ、コンピュータ、方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113841093A CN113841093A (zh) | 2021-12-24 |
CN113841093B true CN113841093B (zh) | 2022-11-22 |
Family
ID=73043505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980096578.2A Active CN113841093B (zh) | 2019-05-23 | 2019-05-23 | 可编程逻辑控制器、计算机、方法以及计算机可读取的记录介质 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6783034B1 (zh) |
CN (1) | CN113841093B (zh) |
WO (1) | WO2020235095A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3015793B1 (ja) * | 1999-01-11 | 2000-03-06 | 株式会社東芝 | プログラマブルコントロ―ラ |
JP2001005504A (ja) * | 1999-06-18 | 2001-01-12 | Mitsubishi Electric Corp | モーションコントローラおよびモーションコントローラ用周辺装置 |
CN105765471A (zh) * | 2013-11-20 | 2016-07-13 | 三菱电机株式会社 | 定序程序创建辅助装置 |
CN108475046A (zh) * | 2016-01-27 | 2018-08-31 | 三菱电机株式会社 | 控制装置及编辑装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08194508A (ja) * | 1995-01-12 | 1996-07-30 | Nissin Electric Co Ltd | 監視制御装置 |
-
2019
- 2019-05-23 JP JP2020506380A patent/JP6783034B1/ja active Active
- 2019-05-23 CN CN201980096578.2A patent/CN113841093B/zh active Active
- 2019-05-23 WO PCT/JP2019/020513 patent/WO2020235095A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3015793B1 (ja) * | 1999-01-11 | 2000-03-06 | 株式会社東芝 | プログラマブルコントロ―ラ |
JP2001005504A (ja) * | 1999-06-18 | 2001-01-12 | Mitsubishi Electric Corp | モーションコントローラおよびモーションコントローラ用周辺装置 |
CN105765471A (zh) * | 2013-11-20 | 2016-07-13 | 三菱电机株式会社 | 定序程序创建辅助装置 |
CN108475046A (zh) * | 2016-01-27 | 2018-08-31 | 三菱电机株式会社 | 控制装置及编辑装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6783034B1 (ja) | 2020-11-11 |
CN113841093A (zh) | 2021-12-24 |
JPWO2020235095A1 (ja) | 2021-06-10 |
WO2020235095A1 (ja) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188048B2 (en) | Programmable logic controller and main unit | |
US20200125060A1 (en) | Programmable Logic Controller And Program Creation Supporting Apparatus | |
EP3101547A1 (en) | Control system, method, program and information processing device | |
CN103106024A (zh) | 触摸屏终端中的文本输入方法及其装置 | |
CN103150188B (zh) | 非x86指令集计算机的x86兼容显卡快速初始化方法 | |
JP7320953B2 (ja) | プログラマブルロジックコントローラ及びそのログデータ保存方法 | |
CN102147756A (zh) | 终端测试方法和系统 | |
CN113841093B (zh) | 可编程逻辑控制器、计算机、方法以及计算机可读取的记录介质 | |
CN109791398B (zh) | 调试装置 | |
CN114115724A (zh) | 一种固态硬盘安全擦除方法及装置 | |
CN112445670B (zh) | 一种eMMC测试方法和装置 | |
CN113056711B (zh) | 输入输出控制单元、plc及数据控制方法 | |
JP7212496B2 (ja) | プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム | |
US8832670B2 (en) | Programmable controller and programming tool for communication with legacy equipment | |
JP2020067752A (ja) | プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム | |
JP4465176B2 (ja) | エディタ装置、コンピュータをエディタ装置として機能させるためのプログラムおよび記録媒体 | |
CN108932171B (zh) | 嵌入式软件交互方法 | |
CN100367233C (zh) | 程序执行控制方式 | |
US20180267680A1 (en) | Screen creation apparatus, simulation apparatus and recording medium | |
US20220365864A1 (en) | Program development device, and program for providing program development device | |
US20180329396A1 (en) | Support device, control method of support device, and non-transitory computer-readable recording medium | |
KR20210049302A (ko) | 모션 제어기의 오류 추적방법 | |
CN109143983B (zh) | 嵌入式可编程控制器的运动控制方法及装置 | |
JP5354463B2 (ja) | プログラマブルコントローラ | |
JP2020013528A (ja) | プログラマブルロジックコントローラ用のエンジニアリングツール |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |