CN110249274B - 工业用控制器的程序开发系统和其数据共享方法 - Google Patents
工业用控制器的程序开发系统和其数据共享方法 Download PDFInfo
- Publication number
- CN110249274B CN110249274B CN201780085749.2A CN201780085749A CN110249274B CN 110249274 B CN110249274 B CN 110249274B CN 201780085749 A CN201780085749 A CN 201780085749A CN 110249274 B CN110249274 B CN 110249274B
- Authority
- CN
- China
- Prior art keywords
- shared
- program
- information
- variable
- file
- 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
- G05B19/056—Programming the PLC
-
- 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/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- 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
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15118—Shared memory
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23334—Use of table with addresses for different modules, write new table if modified
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Library & Information Science (AREA)
- Programmable Controllers (AREA)
Abstract
本发明的课题是提供不需要手动进行分配作业的能够提高开发效率的工业用控制器中的程序的开发辅助系统和该系统中的数据共享方法。控制程序开发PC(101)的协作文件生成部(212)提取控制程序(207)的变量名,生成映射文件(210)和头文件(209)。在信息程序开发PC(102)中,使用所生成的头文件(209)由用户生成信息程序(219)。在工业用控制器(103)中,信息程序(219)利用共享访问部(220)使用映射文件(210)访问共享存储区域(224),使用共享变量访问数据。
Description
技术领域
本发明涉及作为编入了所谓的可编程逻辑控制器的设备的工业用控制器,尤其适用于涉及在共享存储区域中共享数据的技术的工业用控制器的数据共享方法。
背景技术
一般而言,在可编程逻辑控制器中要执行高级语言程序(下面称为“信息程序”)时,信息程序由于电动机等器件的地址是不清楚的,因此不能识别这样的器件。因此,在现有技术中,通过手动分配器件的地址,使得能够在可编程逻辑控制器的器件与周边设备之间进行通信(参照专利文献1)。
现有技术文献
专利文献
专利文献1:日本专利5079166号公报
发明内容
发明要解决的技术问题
但是,在器件的数量庞大时,手动进行这样的分配作业本身是困难的。
本发明鉴于上述的问题而完成,提案了不需要手动进行分配作业的能够提高开发效率的工业用控制器和工业控制器的数据共享方法。
用于解决技术问题的技术手段
为了解决上述的技术问题,本发明提供一种工业用控制器,用于控制对象设备的控制程序和执行规定处理的信息程序使用共享变量在共享存储区域共享数据,所述工业用控制器的特征在于,包括:文件生成部,其提取所述控制程序中包含的所述共享变量的变量信息,生成关于所述共享存储区域的映射文件和访问所述共享存储区域时使用的头文件;和程序生成部,其使用所述头文件生成所述信息程序,所述信息程序使用所述映射文件访问所述共享存储区域。
此外,本发明提供一种工业用控制器的数据共享方法,在所述工业用控制器中,用于控制对象设备的控制程序和执行规定处理的信息程序使用共享变量在共享存储区域共享数据,所述工业用控制器的数据共享方法的特征在于,包括:所述工业用控制器提取所述控制程序中包含的所述共享变量的变量信息,生成关于所述共享存储区域的映射文件和访问所述共享存储区域时使用的头文件的文件生成步骤;所述工业用控制器使用所述头文件生成所述信息程序的程序生成步骤;和所述信息程序使用所述映射文件访问所述共享存储区域的数据访问步骤。
发明效果
依照本发明,不需要手动进行分配作业,能够提高开发效率。
附图说明
图1是表示第一实施方式的工业用控制器和程序开发环境的硬件结构的一例的图。
图2是表示第一实施方式的工业用控制器和程序开发环境的软件结构的一例的图。
图3是表示第一实施方式的共享变量的设定画面的一例的图。
图4是表示第一实施方式的头文件的一例的图。
图5是表示第一实施方式的映射文件的一例的图。
图6是表示第一实施方式的容器的一例的示意图。
图7是表示第一实施方式的控制程序关联的处理的一例的流程图。
图8是表示第一实施方式的信息程序关联的处理的一例的流程图。
图9是表示第二实施方式的控制程序关联的处理的一例的流程图。
具体实施方式
下面,参照附图对本发明的一个实施方式进行详细说明。
(1)第一实施方式
(1-1)硬件结构
图1表示第一实施方式的工业用控制器(下面也称为“控制器”)103和程序开发环境的硬件结构的一例。控制程序开发PC101、信息程序开发PC102和工业用控制器(下面简称为“控制器”)103,基本上具有大致相同的硬件结构,如后所述,与目的相应的软件进行动作。
网络105将控制程序开发PC101、信息程序开发PC102和控制器103连接。网络106连接控制器103和控制对象设备104。
控制程序开发PC101是用于开发控制程序的计算机。控制程序开发PC101包括EPROM107、CPU108、主存储器109、周边控制装置110、网络I/F111、非易失性存储装置112和用户I/F装置113。
周边控制装置110经由总线114将各种装置彼此连接。网络I/F111是用于与网络105连接的接口。非易失性存储装置112是存储各种程序、文件的装置。用户I/F装置113是用户进行需要的数据的输入等的装置。
信息程序开发PC102是用于开发信息程序的计算机。信息程序开发PC102包括EPROM115、CPU116、主存储器117、周边控制装置118、网络I/F119、非易失性存储装置120和用户I/F装置121。
周边控制装置118经由总线132将各种装置彼此连接。网络I/F119是用于与网络105连接的接口。非易失性存储装置120是存储各种程序、文件的装置。用户I/F装置121是进行用户需要的数据的输入等的装置。
控制器103包括EPROM122、CPU123、主存储器124、周边控制装置126、网络I/F125、网络I/F127、非易失性存储装置128和用户I/F装置129。
周边控制装置126经由总线133将各种装置彼此连接。网络I/F125、127是用于与各自对应的网络105、106连接的接口。非易失性存储装置128是存储各种程序、文件的装置。用户I/F装置129是进行用户所需的数据的输入等的装置。
在控制器103中,通过将存储在EPROM122或非易失性存储装置128中的操作系统(OS)、各种程序和各种文件在主存储器124中展开,使用CPU123执行各种运算等。
控制对象设备104包括传感器130和执行器131。传感器130例如是手动开关、继电器、光电开关、接近开关、限位开关、重量计、温度传感器,压力传感器、振动传感器、声波传感器、流量计、流速计、气体传感器、速度传感器、旋转计、电流计、电压计、电力计、水质传感器、颜色判别传感器或照相机这样的器件。
另一方面,执行器131例如是电动机、发电机、加热器、控制阀、汽缸、螺线管、灯、显示器、蜂鸣器、扬声器、泵、压缩机、空调机、冷冻机或输送设备这样的器件。
(1-2)软件结构
图2表示第一实施方式的控制器103和程序开发环境的软件结构的一例。在图示的例子中,省略了图1中的控制对象设备104。
在本实施方式中,例示在执行控制程序207的任务处理的最后,共享访问部208访问共享存储区域224的情况。在控制程序中包含全局变量的情况下,最高优先度的任务将该全局变量写入共享存储区域224。
(1-2-1)控制程序开发PC
首先,对控制程序开发PC101进行说明。源文件201是描述控制程序207的源代码的文件。编辑器202是用于生成源文件201的程序。编译器203根据源文件201生成中间语言文件。链接器204将中间语言文件和库205结合而生成执行文件。库205是为了再次利用程序的函数而预先准备的中间语言文件。
IDE控制部206是对编辑器202、编译器203和链接器204等进行控制的程序。将编辑器202、编译器203、链接器204、库205和IDE控制部206统一称为综合开发环境程序(IDE:Integrated Development Environment)。
进而,控制程序开发PC101包括共享访问部208、头文件209、映射文件210、共享区域访问部211和协作文件生成部212。共享区域访问部211是用于控制程序207访问共享存储区域224的共享访问部208的源文件。协作文件生成部212生成头文件209和映射文件210。
(1-2-2)信息程序开发计算机
接着,对信息程序开发PC102进行说明。源文件213是描述信息程序219的源代码的文件。编辑器214是用于生成源文件213的程序。编译器215根据源文件213生成中间语言文件。链接器216将中间语言文件和库217结合而生成执行文件。库217是为了再次利用程序的函数而预先准备的中间语言文件。
在上述的控制器103中,有需要进行复杂的算术运算、SCADA、MES、与云系统进行信息的发送接收等数据处理的情况。这样的数据处理,存在难以用前述的控制装置特有的语言编程的情况,存在使用C语言、Java(注册商标)语言等在信息通信领域使用的编程语言描述的情况。将执行这样的数据处理的程序称为“信息程序”。该信息程序例如相当于信息程序219。
IDE控制部218是控制编辑器214、编译器215和链接器216等的程序。将编辑器214、编译器215、链接器216、库217和IDE控制部218统一称为综合开发环境程序。
进而,信息程序开发PC102包括共享访问部220、头文件209和协作文件访问部222。共享访问部220是用于信息程序219访问共享存储区域224的程序。协作文件访问部222从控制器103取得头文件209,或将信息程序219和共享访问部220发送至控制器。
(1-2-3)控制器
另一方面,控制器103也称为顺序控制装置、运动控制装置或可编程逻辑控制器(PLC)。控制器103执行利用梯形逻辑(LD语言)、顺序功能图(FC语言)、功能块图(FBD语言)、结构式文件(ST语言)或指令表(LD语言)等的控制装置特有的编程语言描述了控制内容的程序。
将可执行这样的控制内容的程序称为“控制程序”。在控制程序207中将一系列的处理称为任务,能够设定按每个任务反复进行处理的周期。在控制程序207使用的变量中,存在输入专用变量和输出专用变量。控制器103不仅执行这样的控制程序207,还执行信息程序219。
共享访问部208是用于控制程序207访问共享存储区域224的程序。库223执行控制程序207、共享访问部208执行所需的共享函数的处理。为了信息程序219访问共享存储区域224,库226参照映射文件210执行访问函数的处理。结构访问部229向协作文件访问部222发送头文件209,或从协作文件访问部222接收信息程序219和共享访问部220。任务调度程序228执行任务。任务以所设定的周期执行该任务中登记的程序。在任务中登记了控制程序207和共享访问部208时,任务与执行周期配合地执行控制程序207和共享访问部208。共享存储区域224保存控制程序207和信息程序219共享的变量的数据。共享访问部220经由库226访问共享存储区域224,例如,将数据读入信息程序219的读入用构造体401,或将写入用构造体402的数据写入共享存储区域224的连续的地址的区域。
头文件209是协作文件生成部212所生成的、生成信息程序219时使用的头文件。映射文件210是协作文件生成部212所生成的、用于信息程序219访问共享存储区域224的文件。
容器处理部227是用于使控制程序207与信息程序219不相互影响的程序。
(1-3)共享变量的设定画面
图3表示作为第一实施方式的共享变量的设定画面的共享变量设定部301的一例。该共享变量设定部301是由控制程序开发PC101显示的设定受理画面。
共享变量设定部301是用于设定与信息程序219共享的变量的GUI(Graphic UseInterface:图形用户界面),由协作文件生成部212生成。共享选择栏302表示在选择(划"√")了的情况下,对于变量名303表示的变量与信息程序219共享变量,在未选择的情况下对于变量名303表示的变量不与信息程序219共享变量。变量名303是与信息程序共享的变量名。类型304是变量的类型。周期305是用于设定在共享存储区域224中保存共享的变量数据的周期的栏。
在按下取消按钮306时,撤消并结束共享变量设定部301的作业,而在按下确定(OK)按钮307时,基于所设定的信息生成头文件209和映射文件210。访问权限308表示对信息程序赋予的访问权限。如果该访问权限308为“读(Read)”,则信息程序能够读入与变量名303对应的变量的数据,而如果访问权限308为“写(Write)”,则信息程序还能够将其写入。
(1-4)头文件
图4表示用于生成信息程序219的头文件209的一例。读入用构造体401是存储信息程序219从共享存储区域224的读取偏移值(读取区域)读入的数据的构造体。写入用构造体402是存储信息程序219写入共享存储区域224的写入偏移值(写入区域)的数据的构造体。头文件中,不限于构造体,还可以记载程序语言可使用的变量的声明。在没有应共享的变量的情况下,不记载成为对象的访问用变量的声明。
全体读(read)访问函数403是用于信息程序219读入所有的读入用变量的数据的函数。在函数的调用时从共享存储区域224的读取区域将数据读入至prData。全体写(write)访问函数404是用于信息程序219写入所有的写入用变量的数据的函数。在函数的调用时从pwData将数据写入至共享存储区域224的写入区域。全体写(write)的读(read)访问函数405是用于信息程序219读入所有的写入用变量的数据的函数。读(read)访问函数405在函数的调用时从共享存储区域224的写入区域将数据读入至pwData。个别读(read)访问函数406是用于信息程序219读入单个读入用变量的数据的函数。个别写(write)访问函数407是用于信息程序219将单个写入用变量的数据写入至写入区域的函数。个别写(write)的读(read)访问函数408是用于信息程序219将单个写入用变量的数据从写入区域读入的函数。
(1-5)映射文件
图5是以CSV形式生成了映射文件210的一例。映射文件210在共享访问部220访问共享存储区域224时使用。
共享存储区域名501是用于识别共享存储区域224的名称。例如如果OS为Linux(注册商标)则作为共享存储区域生成文件,因此令表示该文件的保存位置的绝对路径为共享存储区域名501。
大小502是共享存储区域224所保存的数据的大小。读取偏移量503表示共享存储区域224的起始地址与存储有用于共享访问部220读取的数据的区域的起始地址之差。
写入偏移量504表示共享存储区域224的起始地址与用于共享访问部220写入数据的区域的起始地址之差。类型505是写入于共享存储区域224的控制程序207所使用的数据的类型。
变量名506是存储有写入于共享存储区域224的数据的、控制程序207所使用的变量的名称。变量偏移量507表示存储有用于共享访问部220读取的数据的区域的起始地址与存储有对象的变量的数据的区域的起始地址之差。类型508是从共享存储区域224读入的控制程序207所使用的数据的类型。
变量名509是存储从共享存储区域224读入的数据的控制程序207所使用的变量的名称。变量偏移量510表示存储有用于共享访问部220读入的数据的区域的起始地址与存储有对象的变量的数据的区域的起始地址之差。从类型505至变量偏移量510的信息,在仅访问个别的变量的情况下,根据需要使用于构造体的对齐的调节。例如,在有多个信息程序219且编程语言不同的情况下,存在保存构造体的成员的区域的构造与映射文件210不同的情况。此时,为用于对象语言而生成的库226,配合对象语言的构造体的定位而计算偏移值,访问共享存储区域224。关于类型的大小,可以在库226保持类型名和大小的转换表,也可以预先记载在映射文件210中。
图6是控制程序207用的容器和信息程序219用的容器的示意图。在图示的例子中,赋予了与图2的各结构相同的附图标记的结构,具有大致相同的功能,因此在下面以不同之处为中心进行说明。
容器处理部227为了使得控制程序207与信息程序219不彼此影响,生成用于控制程序207和信息程序219的容器。
具体而言,容器处理部227生成控制程序207和信息程序219各自专用的处理、文件系统和网络的名称空间、以及CPU123和主存储器124的资源。
在本实施方式中,将控制程序207用的容器称为“控制容器”,将信息程序219用的容器称为“信息容器”。容器的具体的生成方法在后面叙述。
图7表示与控制程序207关联的处理的一例。首先,在步骤S600中,容器处理部227,如图6所示,生成控制程序207用的控制容器和信息程序219用的信息容器。
图6中的容器处理部227,将生成共享存储区域224的目录搭载(对应于图中的虚线)至控制容器和信息容器的文件系统,生成共享目录,使得能够从控制程序207和信息程序219进行访问。此外,容器处理部227还生成:用于保存头文件209和映射文件210的共享目录;和用于保存信息程序219和共享访问部220的共享目录。此时,容器处理部227对于后者的共享目录,仅搭载在信息容器的文件系统而共享。控制程序207在控制容器内被执行,信息程序219在信息容器内被执行。
在步骤S601中,用户使用控制程序开发PC101,生成用于使用之前所述的IDE将源代码统一管理的项目,生成控制程序207。在步骤S602中,用户为了启动共享变量设定部301,选择符合之前所述的IDE的菜单。当菜单被选择时,协作文件生成部212从源文件201提取变量。
在步骤S603中,协作文件生成部212生成并显示共享变量设定部301(参照图3)。用户对于与信息程序219共享的变量的共享选择栏302进行选择,设定访问权限308和周期305。在完成了设定后,当用户按下确认(OK)按钮307时,协作文件生成部212将设定内容保存在存储器中。
在步骤S604中,协作文件生成部212从存储器取得所设定的值。
在步骤S605中,协作文件生成部212生成头文件209和映射文件210。协作文件生成部212将访问权限308设定为“读(Read)”的变量作为读入用构造体401定义至头文件209。接着,协作文件生成部212将访问权限308设定为“写(Write)”的变量作为写入用构造体402定义至头文件209。而且,协作文件生成部212将全体读访问函数403、全体写访问函数404、全体写的读访问函数405、个别读访问函数406、个别写访问函数407和个别写的读访问函数408定义至头文件209。
接着,协作文件生成部212以使得信息程序219能够以由头文件209定义了的构造体变量的构造访问共享存储区域224的方式,生成映射文件210。具体而言,协作文件生成部212将共享存储区域名501、用共享存储区域名生成的文件的大小502、读取偏移量503和写入偏移量504输出至映射文件210。协作文件生成部212以使得能够从共享存储区域224的起始地址起依次保存设定为“读(Read)”的变量,并接续地保存设定为“写(Write)”的变量的方式,生成用于访问共享存储区域224的映射文件210。协作文件生成部212根据由头文件209定义的构造体的大小计算大小502、读取偏移量503、写入偏移量504。接着,协作文件生成部212将读入用构造体401定义的变量的类型505、变量名506、变量偏移量507输出至映射文件210。接着,协作文件生成部212将写入用构造体402定义的变量的类型508、变量名509、变量偏移量510输出至映射文件210。协作文件生成部212考虑变量的定义顺序、变量的大小和信息程序219的构造体的定位而计算变量偏移量(507和510)并将其输出。
在步骤S606中,协作文件生成部212决定共享存储区域224的名称,生成共享存储区域224,生成能够访问在该共享存储区域224保存共享变量的数据的区域的源代码(共享区域访问部211)。具体而言,协作文件生成部212基于在头文件209定义的构造体的变量的顺序、输出至映射文件210的偏移量,在共享变量设定部301中生成将设定为“读(Read)”的读入用变量的数据写入共享存储区域224的源代码,和将设定为“写(Write)”的写入用变量的数据从共享存储区域224读入至控制程序207的变量的源代码。
协作文件生成部212将控制程序207登记至任务中,作为任务的执行周期设定周期305。任务的执行周期也可以由控制程序生成者等手动设定。协作文件生成部212以使得能够在控制程序207之后被执行的方式,将访问共享存储区域224的共享访问部208登记至相同任务。
在步骤S607中,当用户在之前叙述的IDE选择执行菜单时,IDE控制部206建立源代码,生成控制程序207和共享访问部208。
在步骤S608中,在控制程序开发PC101中,IDE控制部206将控制程序207和共享访问部208发送至之前叙述的控制容器内的共享目录以外的地方,将头文件209和映射文件210发送至控制容器内的共享目录。
在步骤S609中,IDE控制部206执行控制器103的任务调度程序228。在步骤S610中,任务调度程序228执行任务,任务以所设定的执行周期执行控制程序207。控制程序207执行控制处理。一旦起动了的任务,不会为了周期性地执行所登记的程序而由任务调度程序再次执行。
在步骤S611中,任务在控制程序207的执行后执行共享访问部208。在步骤S612中,共享访问部220有效地利用库223的处理并且指定共享存储区域名501和大小502,使共享存储区域224开放(为可访问的状态),基于输出至映射文件210的信息写入读权限的变量的数据,并且读入写权限的变量的数据。接着执行步骤S610。
图8表示信息程序219的关联处理的一例。在步骤S701中,用户使用之前所述的IDE执行生成项目的向导,该项目用于将源代码统一管理。
在步骤S702中,当向导被执行时,IDE控制部218执行协作文件访问部222,与控制器103的结构访问部229通信,取得头文件209。
在步骤S703中,协作文件访问部222在成为信息程序219的源代码的文件的头文件声明部的位置输入头文件209的声明,完成项目的生成。
在步骤S704中,用户生成信息程序219和用于访问共享存储区域224的共享访问部220的源代码。用户基于由头文件209定义的函数,生成共享访问部220的源代码。
在步骤S705中,当用户在之前所述的IDE选择执行菜单时,IDE控制部218建立源代码,生成信息程序219和共享访问部220。共享访问部220也可以包括在信息程序219中。
在步骤S706中,协作文件访问部222将信息程序219和共享访问部220发送至结构访问部229。容器处理部227可以在结构访问部229接收到信息程序219和共享访问部220时,生成信息容器。容器处理部227可以在信息程序219结束时删除信息容器。结构访问部229将信息程序219和共享访问部220保存在能够从信息容器内访问的共享目录。在本实施方式中,经结构访问部229在信息容器内保存了信息程序219和共享访问部220,但也可以是,协作文件访问部222与信息容器内的FTP服务器等通信而在信息容器内保存信息程序219和共享访问部220。在步骤S707中,IDE控制部218例如通过SSH连接而登录(login)信息容器内以执行信息程序219。
在步骤S708中,信息程序219执行数据处理。在步骤S709中,信息程序219执行共享访问部220。在步骤S710中,共享访问部220为了执行访问函数而调出库226。库226从共享目录取得映射文件210。库226事先保持着用于取得映射文件210的路径名。
在步骤S711中,共享访问部220执行经由库226对共享存储区域224的访问。
(1-6)访问方法
(1-6-1)全体读访问:
库226从函数的参数取得读入用构造体401的起始地址。库226根据写入偏移量504与读取偏移量503之差计算读入数据大小。库226指定共享存储区域名501,使共享存储区域224开放,读入根据读取偏移量503的位置计算出的大小的量的数据,写入从所取得的读入用构造体401的起始地址起依次读入的数据。
(1-6-2)全体写访问:
库226根据函数的参数取得写入用构造体402的起始地址。库226根据大小502与写入偏移量504之差计算写入数据大小。库226指定共享存储区域名501,使共享存储区域224开放,读入根据写入用构造体402的起始地址的位置计算出的大小的量的数据,依次写入从共享憶区域224的写入偏移量503的位置读入的数据。
(1-6-3)全体写的读访问:
库226根据函数的参数取得写入用构造体402的起始地址。库226根据大小502与写入偏移量504之差计算读入的数据大小。库226指定共享存储区域名501,使共享存储区域224开放,读入根据写入偏移量503的位置计算出的大小的量的数据,从所取得的写入用构造体402的起始地址起依次写入所读入的数据。
(1-6-4)个别读访问:
库226根据函数的参数取得读入用构造体401的起始地址和个别变量的起始地址。库226计算所取得的地址的差,计算个别变量的偏移量值。库226参照映射文件210,确定一致的变量偏移量507的变量。库根据所确定的变量的类型505确定大小。库226指定共享存储区域名501,使共享存储区域224开放,读入根据从读取偏移量503的位置离开了计算出的偏移量的位置确定的大小的量的数据,从所取得的个别变量的起始地址依次写入所读入的数据。
(1-6-5)个别写访问:
库226根据函数的参数取得写入用构造体402的起始地址和个别变量的起始地址。库226将所取得的地址之差与写入偏移量504相加而计算个别变量的偏移量值。库226参照映射文件210,确定与计算出的偏移量值一致的变量偏移量510的变量。库226根据所确定的变量的类型508确定大小。库226指定共享存储区域名501,使共享存储区域224开放,读入从个别变量的起始地址起的确定的大小的量的数据,从与共享存储区域224的起始地址离开计算出的偏移量的位置,写入从个别变量的起始地址读入的数据。
(1-6-6)个别写的读访问:
库226根据函数的参数取得写入用构造体402的起始地址和个别变量的起始地址。库226将所取得的地址之差与写入偏移量504相加而计算个别变量的偏移量值。库226参照映射文件210,确定与变量偏移量510之差一致的变量。库226根据所确定的变量的类型508确定大小。库226指定共享存储区域名501,使共享存储区域224开放,读入从离开了所计算出的偏移量的位置起的确定的大小的量的数据,从所取得的个别变量的起始地址起依次写入所读入的数据。
接着,执行步骤S708。共享访问部208和库226写入共享存储区域224的处理是成为不中断写入处理地连续的处理的原子处理(不可被中断的一个或一系列操作)。
(1-7)本实施方式的作用效果等
采用以上所述的结构,能够提取控制程序207中包含的共享变量的变量信息,能够生成关于共享存储区域224的映射文件210、访问共享存储区域224时使用的头文件209。此外,能够使用头文件209生成信息程序219。该信息程序219使用映射文件210访问共享存储区域224。当采用这样的结构时,在控制程序207与信息程序219之间自动地生成相同的共享变量名,不需要管理者手动进行作为控制程序209的控制对象设备的器件的地址的分配作业,因此能够提高开发效率。
(2)第二实施方式
在第二实施方式中,省略了对与第一实施方式相同的结构和动作的说明,以不同之处为中心进行说明。在第二实施方式中,与第一实施方式不同,作为控制程序207的任务之外的任务,执行共享访问部208,访问共享存储区域224。
图9表示控制程序关联的处理的一例。在步骤S801中,协作文件生成部212决定共享存储区域224的名称,生成共享存储区域224,生成能够在共享存储区域224访问共享变量的数据的源代码(共享区域访问部211)。协作文件生成部212生成控制程序207的任务之外的其它共享访问任务,作为执行的周期,设定从共享变量设定部301取得的周期。协作文件生成部212将共享访问任务的执行优先度设定得低于执行控制程序207的任务的优先度。
在步骤S802中,任务调度程序228执行任务,任务按所设定的执行周期执行登记的控制程序207。控制程序207执行控制处理。接着执行步骤S803。该任务按所设定的执行周期反复执行控制程序207。在步骤S803中,任务调度程序228执行共享访问任务,执行登记了共享访问任务的共享访问部208。接着执行步骤S612。该共享访问任务按所设定的执行周期反复执行步骤803和步骤612。
采用如上所述的结构,与控制程序207的任务独立的共享访问部208以执行优先度低于控制程序207的状态访问共享存储区域224,因此能够使得不容易受到控制程序207的影响。
(3)其它实施方式
上述实施方式是用于说明本发明的例示,并不表示本发明仅限定于这些实施方式。本发明在不脱离其主旨的范围内,能够以各种方式实施。例如,在上述实施方式中,按顺序说明了各种程序的处理,但是并不限定于此。因此,只要处理结果不产生矛盾,就可以使处理的顺序交换或进行并行动作。
工业上的可利用性
本发明能够广泛地应用于作为搭载了所谓的可编程逻辑控制器的设备的工业用控制器和工业用控制器中的数据共享方法。
附图标记的说明
101……控制程序开发PC,102……信息程序开发PC,103……控制器,104……控制对象设备,130……传感器,131……执行器。
Claims (5)
1.一种工业用控制器的程序开发系统,其包括:用于控制对象设备的控制程序和执行规定处理的信息程序使用共享变量在共享存储区域共享数据的工业用控制器;能够开发所述信息程序的信息程序开发计算机;和能够开发所述控制程序的控制程序开发计算机,所述信息程序是执行使用编程语言描述的数据处理的程序,
所述程序开发系统的特征在于:
所述控制程序开发计算机具有文件生成部,该文件生成部提取所述控制程序中包含的所述共享变量的变量信息,生成关于所述共享存储区域的映射文件和访问所述共享存储区域时使用的头文件,
所述信息程序开发计算机具有程序生成部,该程序生成部使用所述头文件生成所述信息程序,
所述工业用控制器执行的所述信息程序使用所述映射文件访问所述共享存储区域,
所述程序生成部生成用于访问所述共享存储区域的共享访问部,生成所述信息程序,
所述信息程序调用所述共享访问部进行对所述共享存储区域的访问,
所述映射文件包括:
用于识别至少1个所述共享存储区域的共享存储区域名;
至少1个所述共享存储区域的大小;
读取偏移量,其是至少1个所述共享存储区域的起始地址与存储有用于所述共享访问部读取的数据的区域的起始地址之差;
写入偏移量,其是至少1个所述共享存储区域的起始地址与用于所述共享访问部写入数据的区域的起始地址之差;
所述共享变量中关于读入变量的读入变量信息;和
所述共享变量中关于写入变量的写入变量信息。
2.如权利要求1所述的程序开发系统,其特征在于:
所述头文件包括:
存储所述信息程序从所述共享存储区域读入的数据的读入用变量声明;
存储所述信息程序写入所述共享存储区域的数据的写入用变量声明;和
用于所述信息程序对所述共享变量进行访问的访问函数。
3. 如权利要求1所述的程序开发系统,其特征在于,包括:
可开发所述信息程序的信息程序开发计算机;和
可开发所述控制程序的控制程序开发计算机,
所述控制程序开发计算机显示可受理关于所述共享变量的设定的画面。
4.如权利要求1所述的程序开发系统,其特征在于,包括:
将所述信息程序和所述控制程序隔离的容器。
5.一种工业用控制器的程序开发系统的数据共享方法,所述程序开发系统包括:用于控制对象设备的控制程序和执行规定处理的信息程序使用共享变量在共享存储区域共享数据的工业用控制器;能够开发所述信息程序的信息程序开发计算机;和能够开发所述控制程序的控制程序开发计算机,所述信息程序是执行使用编程语言描述的数据处理的程序,
所述数据共享方法的特征在于,包括:
所述控制程序开发计算机提取所述控制程序中包含的所述共享变量的变量信息,生成关于所述共享存储区域的映射文件和访问所述共享存储区域时使用的头文件的文件生成步骤;
所述信息程序开发计算机使用所述头文件生成所述信息程序的程序生成步骤;和
所述工业用控制器执行的所述信息程序使用所述映射文件访问所述共享存储区域的数据访问步骤,
在所述程序生成步骤中,所述信息程序开发计算机生成用于访问所述共享存储区域的共享访问部,生成所述信息程序,
所述工业用控制器执行的所述信息程序调用所述共享访问部进行对所述共享存储区域的访问,
所述映射文件包括:
用于识别至少1个所述共享存储区域的共享存储区域名;
至少1个所述共享存储区域的大小;
读取偏移量,其是至少1个所述共享存储区域的起始地址与存储有用于所述共享访问部读取的数据的区域的起始地址之差;
写入偏移量,其是至少1个所述共享存储区域的起始地址与用于所述共享访问部写入数据的区域的起始地址之差;
所述共享变量中关于读入变量的读入变量信息;和
所述共享变量中关于写入变量的写入变量信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017088962A JP6821497B2 (ja) | 2017-04-27 | 2017-04-27 | 産業用コントローラのプログラム開発システム及び産業用コントローラのプログラム開発システムにおけるデータ共有方法 |
JP2017-088962 | 2017-04-27 | ||
PCT/JP2017/047400 WO2018198439A1 (ja) | 2017-04-27 | 2017-12-28 | 産業用コントローラ及び産業用コントローラにおけるデータ共有方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110249274A CN110249274A (zh) | 2019-09-17 |
CN110249274B true CN110249274B (zh) | 2022-04-19 |
Family
ID=63920357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780085749.2A Active CN110249274B (zh) | 2017-04-27 | 2017-12-28 | 工业用控制器的程序开发系统和其数据共享方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10955809B2 (zh) |
EP (1) | EP3617819B1 (zh) |
JP (1) | JP6821497B2 (zh) |
CN (1) | CN110249274B (zh) |
WO (1) | WO2018198439A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6922583B2 (ja) * | 2017-09-15 | 2021-08-18 | オムロン株式会社 | 情報処理装置、情報処理方法、および、情報処理プログラム |
JP6922793B2 (ja) * | 2018-03-12 | 2021-08-18 | オムロン株式会社 | 制御装置、制御方法、および制御プログラム |
JP6969460B2 (ja) * | 2018-03-15 | 2021-11-24 | オムロン株式会社 | プログラム開発支援システム、プログラム開発支援方法及びプログラム開発支援プログラム |
JP6950635B2 (ja) * | 2018-07-03 | 2021-10-13 | オムロン株式会社 | コンパイル装置およびコンパイル方法 |
JP6950634B2 (ja) | 2018-07-03 | 2021-10-13 | オムロン株式会社 | 制御装置および制御方法 |
JP7141939B2 (ja) * | 2018-12-13 | 2022-09-26 | 株式会社日立産機システム | 産業用コントローラ |
CN111913426B (zh) * | 2019-05-08 | 2023-05-05 | 创升益世(东莞)智能自控有限公司 | 一种应用于工业自动化控制系统的软件容器方法 |
JP7294078B2 (ja) * | 2019-11-12 | 2023-06-20 | オムロン株式会社 | 制御装置 |
JP6787616B1 (ja) * | 2020-01-28 | 2020-11-18 | 株式会社オプトン | 制御プログラム生成装置、制御プログラム生成方法、プログラム |
JP6829505B1 (ja) * | 2020-04-20 | 2021-02-10 | 株式会社オプトン | 制御プログラム生成装置、制御プログラム生成方法、プログラム |
CN112596918B (zh) * | 2020-12-04 | 2024-08-09 | 广东嘉腾机器人自动化有限公司 | 系统内各程序间共享变量的方法及存储装置 |
WO2022269889A1 (ja) * | 2021-06-25 | 2022-12-29 | 三菱電機株式会社 | 入力ユニット、制御システム、通信方法及びプログラム |
CN113268043A (zh) * | 2021-06-28 | 2021-08-17 | 华能鹤岗发电有限公司 | 实现plc与dcs系统信息交换的方法及装置 |
CN114167845B (zh) * | 2021-12-23 | 2023-12-05 | 广东嘉腾机器人自动化有限公司 | 一种plc与设备的通讯离线诊断方法和系统 |
CN116192714A (zh) * | 2023-02-24 | 2023-05-30 | 上海繁易信息科技股份有限公司 | 一种工业设备的变量信息获取方法和装置 |
CN116483597B (zh) * | 2023-06-25 | 2024-01-05 | 广东科伺智能科技有限公司 | 一种数据共享方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231525A (zh) * | 2008-02-21 | 2008-07-30 | 四方电气(集团)有限公司 | 分布式控制系统dcs控制器实时数据库的实现方法 |
CN103649918A (zh) * | 2011-05-16 | 2014-03-19 | Abb研究有限公司 | 在线动态分配和配置分布式控制系统中应用的方法和系统 |
CN105511387A (zh) * | 2015-11-27 | 2016-04-20 | 中工科安科技有限公司 | 一种plc io扩展模块及其扩展方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4570217A (en) * | 1982-03-29 | 1986-02-11 | Allen Bruce S | Man machine interface |
JPH043205A (ja) * | 1990-04-20 | 1992-01-08 | Yokogawa Electric Corp | データ・アクセス・システム |
JP3548777B2 (ja) * | 1998-10-28 | 2004-07-28 | オムロン株式会社 | コントロール制御装置 |
DE112006003770T5 (de) * | 2006-03-29 | 2009-04-23 | Mitsubishi Electric Corporation | Programmierungsunterstützungsvorrichtung, Programmierungsunterstützungsverfahren, Programm zum Veranlassen eines Computers, das Verfahren zu Implementieren, und Aufzeichnungsmedium, das das Programm enthält |
JP5079166B1 (ja) * | 2011-07-01 | 2012-11-21 | 三菱電機株式会社 | シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ |
US8832670B2 (en) * | 2011-07-01 | 2014-09-09 | Mitsubishi Electric Corporation | Programmable controller and programming tool for communication with legacy equipment |
JP6292096B2 (ja) * | 2014-04-24 | 2018-03-14 | 富士電機株式会社 | プログラマブルコントローラシステム、その支援装置 |
-
2017
- 2017-04-27 JP JP2017088962A patent/JP6821497B2/ja active Active
- 2017-12-28 EP EP17907828.2A patent/EP3617819B1/en active Active
- 2017-12-28 CN CN201780085749.2A patent/CN110249274B/zh active Active
- 2017-12-28 US US16/487,538 patent/US10955809B2/en active Active
- 2017-12-28 WO PCT/JP2017/047400 patent/WO2018198439A1/ja unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231525A (zh) * | 2008-02-21 | 2008-07-30 | 四方电气(集团)有限公司 | 分布式控制系统dcs控制器实时数据库的实现方法 |
CN103649918A (zh) * | 2011-05-16 | 2014-03-19 | Abb研究有限公司 | 在线动态分配和配置分布式控制系统中应用的方法和系统 |
CN105511387A (zh) * | 2015-11-27 | 2016-04-20 | 中工科安科技有限公司 | 一种plc io扩展模块及其扩展方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3617819B1 (en) | 2022-03-02 |
US10955809B2 (en) | 2021-03-23 |
JP2018185772A (ja) | 2018-11-22 |
EP3617819A1 (en) | 2020-03-04 |
JP6821497B2 (ja) | 2021-01-27 |
EP3617819A4 (en) | 2020-12-02 |
WO2018198439A1 (ja) | 2018-11-01 |
US20190369588A1 (en) | 2019-12-05 |
CN110249274A (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110249274B (zh) | 工业用控制器的程序开发系统和其数据共享方法 | |
US10162328B2 (en) | Controller and control system | |
JP2018129020A (ja) | インダストリアル・インターネットオペレーティングシステムに基づくインダストリアル・プロセス制御管理方法と装置 | |
EP3647941B1 (en) | Engineering apparatus, control method of engineering apparatus, and program | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
CN111052010B (zh) | 控制系统、开发辅助装置和存储介质 | |
JP6292096B2 (ja) | プログラマブルコントローラシステム、その支援装置 | |
JP4366575B2 (ja) | ツール | |
JP7085305B2 (ja) | コントロールシステム及びコントロール方法 | |
JP2013084112A (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
JP2011186607A (ja) | フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム | |
JP2014199485A (ja) | 情報処理装置および情報処理プログラム | |
JP2011221934A (ja) | レジスタコンフィギュレータおよびレジスタコンフィギュレーション方法 | |
JP6455096B2 (ja) | コントロールシステム、その支援装置、プログラマブルコントロール装置 | |
JP2008305006A (ja) | グラフィック情報生成装置 | |
JP4778312B2 (ja) | データ処理装置、プログラム、エディタ装置および記録媒体 | |
JP5870214B2 (ja) | プログラマブルコントローラシステム、そのプログラマブル表示器、支援装置、プログラム | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP2016024818A (ja) | データ転送のための産業用制御システムおよび方法 | |
JP2020144594A (ja) | 制御装置およびソフトウェアのデプロイ方法 | |
JP2009157534A (ja) | プログラム作成支援システム、そのプログラマブルコントローラ支援装置、プログラマブル表示器支援装置 | |
JP2019057212A (ja) | プログラマブルコントローラ及びコントロールシステム | |
JP2024130005A (ja) | サポート装置、制御方法、およびサポートプログラム | |
JP2024130006A (ja) | サポート装置、制御方法、およびサポートプログラム | |
CN113892065A (zh) | 支持装置以及支持程序 |
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 |