WO2013005350A1 - シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ - Google Patents

シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ Download PDF

Info

Publication number
WO2013005350A1
WO2013005350A1 PCT/JP2011/076579 JP2011076579W WO2013005350A1 WO 2013005350 A1 WO2013005350 A1 WO 2013005350A1 JP 2011076579 W JP2011076579 W JP 2011076579W WO 2013005350 A1 WO2013005350 A1 WO 2013005350A1
Authority
WO
WIPO (PCT)
Prior art keywords
programmable logic
symbol table
logic controller
controller
level language
Prior art date
Application number
PCT/JP2011/076579
Other languages
English (en)
French (fr)
Inventor
深津 法保
Original Assignee
三菱電機株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2012510458A priority Critical patent/JP5079166B1/ja
Priority to DE112011105402.5T priority patent/DE112011105402T5/de
Publication of WO2013005350A1 publication Critical patent/WO2013005350A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23334Use of table with addresses for different modules, write new table if modified
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the present invention relates to a symbol table generation method for a program executed by a programmable logic controller in an industrial automation (automated) environment, a communication method with a peripheral device using the programmable logic controller, and a programmable logic controller.
  • the low-level automation system may include a dedicated robotic device or automation system that is controlled or monitored by a programmable logic controller (PLC: Programmable logic controller).
  • PLC programmable logic controller
  • sensing devices and instruments may be used to monitor such processes, such as machine vision systems, bar code readers, temperature sensors, and the like.
  • FIG. 1 shows a conventional industrial automation environment / production system 100.
  • the peripheral device 101 is connected to the PLC 102 via the network 103.
  • the PLC 102 executes a ladder program that controls various devices.
  • the administrator can access the execution state and the results of various devices by making an inquiry (query) to the PLC 102 via the peripheral device 101.
  • peripheral devices include a SCADA (supervision control and data acquisition) system, a human machine interface (HMI) system, and a user application activated on a computer.
  • the PLC is connected to a power supply module and a network module that transmits PLC information to peripheral devices.
  • device includes a physical device attached to a PLC and controlled by the PLC. Sensors, switches, relays, etc. are examples of devices described in this disclosure. However, the “device” according to the present disclosure is not limited to a physical apparatus.
  • a device may refer to an internal element such as a register or an internal relay that is assigned a memory address in the PLC.
  • a device may also refer to software that can communicate with a PLC via a shared access memory.
  • the inquiry indicates the device in the controller that the peripheral device wants to monitor. For example, the inquiry is “Is device X on or off?”.
  • controller executes a high-level language program that does not recognize the device, such an inquiry may not be recognized by the controller.
  • a controller that executes a high-level language program (for example, a program written in C language) recognizes a variable name and a physical address in the controller's memory for the variable name instead of a device name.
  • the existing peripheral device cannot communicate with the controller.
  • the high-level language program is easy to use and maintain and the programmer prefers the high-level language program over the ladder program, the customer desires to use a new controller that can execute the high-level language program. As a possible solution to such a problem, although not sufficient, it is conceivable to use expensive middleware between the controller and peripheral devices.
  • the embodiment of the present invention addresses at least the above problems and disadvantages and other disadvantages not described above. It should be noted that the present invention is not required to overcome the above disadvantages, and embodiments of the present invention may not overcome any of the above problems.
  • An example of a method for generating a symbol table of a programmable logic controller that executes a high-level language program comprises the steps of reading a high-level language program, an association table that defines the relationship between devices controlled by the programmable logic controller and variable names in the high-level language program, and the physical of each variable name. Compiling and linking the high-level language program and the association table to determine the address and the corresponding device, and defining the physical address determined for each device by the compiling and linking. Generating a symbol table; and storing the symbol table in a memory of the programmable logic controller.
  • an example of a method of communication between a peripheral device and a programmable logic controller that executes a high-level language program includes a step of receiving a request to read or write to a device controlled by the programmable logic controller from the peripheral device, and reading a symbol table to determine a physical address of the device in the memory of the programmable logic controller. And a step of reading or writing the determined physical address.
  • the symbol table generation method, the communication method with the peripheral device, and the programmable logic controller according to the present invention have an effect that the programmable logic controller that can execute the high-level language program can easily communicate with the existing peripheral device.
  • FIG. 1 is a diagram illustrating a conventional industrial automation environment / production system.
  • FIG. 2 is a diagram showing a program configuration in physical memory after compiling and compiling and linking three different programs according to the conventional method.
  • FIG. 3 is a diagram showing a program configuration in the physical memory after compiling and compiling and linking three different programs according to the embodiment.
  • FIG. 4 is a diagram illustrating a symbol table and a memory configuration of the controller according to the embodiment.
  • FIG. 5 is a diagram illustrating an example of a method for generating a symbol table.
  • FIG. 6 is a diagram illustrating an example of a method corresponding to a data read / write request from the peripheral device to the controller.
  • FIG. 7 is a diagram illustrating an example of a method corresponding to a data read / write request from the peripheral device to the controller.
  • FIG. 8 is a diagram illustrating an example of the configuration of the controller.
  • the embodiment disclosed in the present application solves the problems described in the background art by providing a related table in which each device is mapped by a corresponding variable name.
  • each device is mapped by a corresponding variable name.
  • it is necessary to understand the compilation process of the high-level application program.
  • the compiling section compiles high-level language programs (also called “high-level programs”) into object modules. That is, the compiling unit converts the high-level program source code into assembly code understood by basic hardware (for example, a pipeline processor).
  • the link unit assigns a physical address to each object file and each variable declared in the high-level program. Further, the link unit generates a symbol table in which each variable is mapped to each physical address in the memory of the controller (PLC is referred to as a controller here).
  • FIG. 2 shows the compilation of three different programs and the program structure in physical memory after compilation and linking. As can be seen from FIG. 2, the link unit generates a symbol table 201 for mapping each variable to each physical address in the controller memory.
  • the related table 301 is given when compiling.
  • This association table 301 is given by a developer or an engineer who develops a high-level program.
  • the compiling and linking processes are described in FIG. 3, but the difference between the prior art and the embodiment is that the related table 301 exists during compiling.
  • the symbol table 302 is generated as a result of compiling and linking processing. As can be seen from FIG. 3, the symbol table 302 includes correspondences between device names, variables (declared by high-level programs), and physical addresses in the memory.
  • the symbol table 302 has columns 311, 312, 313, 314, 315, and 316.
  • a column 311 describes a device name (device memory name)
  • a column 312 describes a device number (device #)
  • a column 313 describes a data type or a data unit
  • a column 314 describes an information amount of the data type of the column 313
  • Column 315 describes the variable name associated with the device.
  • the device D200 (which describes the temperature measured by the temperature sensor of the controller) is represented as a variable “Temperature_in_system” in the high level program.
  • the physical address (# Address3) is assigned to the variable “Temperature_in_system” in the controller memory as seen in the column 316 describing the physical address in the new controller.
  • Fig. 4 shows the memory structure of the controller after compiling and linking. As shown in FIG. 4, the symbol table 302 is stored in the memory of the controller.
  • FIG. 5 shows a method of creating a symbol table that stores the correspondence between device names, variable names, and physical addresses.
  • the high-level program and the related table (for example, 301) are read by the compiling unit.
  • the compiling unit generates an assembly language file for each high-level program and related tables.
  • the link unit assigns a physical address to each variable declared in the high-level program, and creates the symbol table 302 by reading the related table and the compiled high-level program.
  • the compiling unit stores the generated symbol table 302 in the memory of the controller.
  • a high-level language processing tool can be provided outside the controller 102 that generates an object file and a symbol file by compiling and linking a high-level language program. That is, the programming tool 400 performs the process shown in FIG.
  • the programming tool 400 may receive the association table 301 and the high level program as input and output a symbol table 302 that is later downloaded to the controller.
  • the programming tool compiles and links the source program, compiles and links the device association table and variable names, and generates a symbol table. That is, the programming tool 400 prepares an execution file including the symbol table 302 and downloads the execution file to the PLC.
  • the programming tool 400 includes a high-level language program compiling unit 401 that compiles the high-level language source program 21 input to the programming tool 400.
  • the high level language source program 21 is a program written in a high level programming language.
  • the high-level language program compilation unit 401 outputs the object module 24 (object file 24).
  • the object file 24 corresponds to the high level language source program 21.
  • the object file 24 includes machine instruction code compiled from the source code of the high-level language source program 21 and symbol information representing variables used in the high-level language source program 21.
  • the programming tool 400 further includes a librarian 402 that creates the user library 26 by integrating the object file 24 and other object files.
  • the link unit 403 included in the programming tool 400 links the object file 24, the user library 26, and the high-level language program standard library 27 to create the load module 29 and the symbol table 302.
  • the high-level language program standard library 27 includes machine command codes for frequently used subroutines.
  • the high-level language program standard library 27 is mainly provided by the provider of the high-level language program compilation unit 401. However, users can prepare their own standard library.
  • the symbol table 302 includes a column or list of definitions of relationships between devices, variables, and physical addresses.
  • step S601 the controller receives a request for information on a device provided in the controller or controlled by the controller. This request may be a request for reading the status of the device.
  • the controller reads the symbol table 302 from the memory.
  • step S ⁇ b> 603 the controller determines the physical address of the device based on the symbol table 302.
  • the controller reads data stored in the physical address in the memory, and in S605, transmits the read information to the requesting peripheral device.
  • An independent program may be stored in the controller, and the program may read the symbol table and read the physical address from the controller memory.
  • step S701 the controller receives a data write request for a device provided in the controller or controlled by the controller.
  • the controller reads the symbol table 302 from the memory.
  • step S ⁇ b> 703 the controller determines the physical address of the device based on the symbol table 302.
  • step S704 the controller writes data to the physical location in the read memory.
  • FIG. 8 shows an example of the configuration of the controller 800 (controller 102) that performs the processing of FIGS.
  • the controller 800 includes a request receiving unit 801 that receives a request from a peripheral device and determines the content of the request.
  • the symbol table reading unit 802 reads the symbol table 302 stored in the memory of the controller.
  • the physical address read / write unit 803 reads or writes data to / from the memory location of the controller based on the symbol table 302 and the reception request.
  • the controller's memory may consist of a limited list of storage media, such as an electrical connection with one or more wires, a portable computer diskette such as a flexible disk, magnetic tape or other magnetic media, a hard disk, RAM (Random access memory), ROM (read-only memory), EPPEOM (erasable programmable memory-and-flash memory), memory cards, other memory chips and memory cartridges, optical fibers, portable CD-ROM (compact disc read) only memory), other optical media, punch cards, paper tape, other physical media with hole patterns, computers / Controller include those appropriate combination of those other medium or above, which can be read.
  • a portable computer diskette such as a flexible disk, magnetic tape or other magnetic media, a hard disk
  • RAM Random access memory
  • ROM read-only memory
  • EPPEOM erasable programmable memory-and-flash memory
  • memory cards other memory chips and memory cartridges
  • optical fibers portable CD-ROM (compact disc read) only memory
  • punch cards paper tape, other physical media with hole patterns
  • the request receiving unit 801, the symbol table reading unit 802, and the physical address reading / writing unit 803 may be implemented using a processor.
  • the above embodiment provides a new controller that can execute a high-level program and further process a request specifying a device name for reading from or writing to a device from a peripheral device.
  • the new controller reads the symbol table and translates the device name into a physical address that can be read or written. As a result, the new controller can respond to data access requests from peripheral devices without requiring middleware or peripheral device updates.
  • the symbol table may be prepared externally by a programming tool and downloaded to the controller by the programming tool.
  • the programming tool 400 may include a processor such as an application-specific integrated circuit or a digital signal processor that performs the tasks of the high-level language program compilation unit 401, the librarian 402, and the link unit 403.
  • the programming tool 400 may also include suitable means for communicating with the PLC.
  • the programming tool 400 may communicate with a PLC via a USB (universal serial bus).
  • FIGS. 5 to 7 may be performed by a special-purpose computer that operates according to instructions stored in a tangible computer-readable storage medium.
  • High-level language source program 24
  • Object file 26
  • User library 27
  • High-level language program standard library 29
  • Load module 100
  • Production system 101
  • Network 201 302
  • Symbol table 301 Related table 311 to 316 Column 400
  • Programming tool 401
  • High-level language program compiling unit 402
  • Librarian 403
  • Link unit 801
  • Request receiving unit 802
  • Symbol table reading unit 803 Physical address reading / writing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Programmable Controllers (AREA)

Abstract

 高レベル言語プログラムを実行するプログラマブルロジックコントローラが既存の周辺機器と容易に通信できるようにするために、シンボルテーブル生成方法は、前記高レベル言語プログラムと、前記プログラマブルロジックコントローラにより制御されるデバイスと前記高レベル言語プログラム内の変数名との関係を規定する関連テーブルと、を読み取るステップ(S501)と、各前記変数名の物理アドレスおよび対応する前記デバイスを判定するために、前記高レベル言語プログラムと前記関連テーブルとをコンパイルしリンクさせるステップと、前記コンパイル及びリンクにより、前記デバイスそれぞれに対して判定された前記物理アドレスを定義する前記シンボルテーブルを生成するステップ(S502)と、前記シンボルテーブルを前記プログラマブルロジックコントローラのメモリに記憶するステップ(S503)と、を含む。

Description

シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
 本発明は、産業オートメーション(自動化)環境におけるプログラマブルロジックコントローラで実行されるプログラムにかかるシンボルテーブル生成方法、プログラマブルロジックコントローラによる周辺機器との通信方法およびプログラマブルロジックコントローラに関する。
 現代の製造施設では、多くの場合、自動化プロセスが低レベルの自動化プロセス制御および監視システムにより制御されている。低レベルの自動化システムは、プログラマブルロジックコントローラ(PLC:Programmable logic controller)により制御または監視される専用のロボット装置または自動化システムを備えても良い。また、こうしたプロセスを監視する、マシンビジョンシステム、バーコードリーダー、温度センサーなどの多様な検知装置および器具が用いられてもよい。
 図1は、従来の産業オートメーション環境/生産システム100を示す。周辺機器101はネットワーク103を介してPLC102に接続される。PLC102は、多様なデバイスを制御するラダープログラムを実行する。管理者は、周辺機器101を介してPLC102に問い合わせ(クエリー)を行うことにより実行の状態や多様なデバイスの結果にアクセスすることができる。例えば、周辺機器の例としては、SCADA(supervisory Control and Data Acquisition)システム、ヒューマン・マシン・インターフェース(HMI:Human machine interface)システム、コンピュータ上で起動するユーザーアプリケーションなどがある。PLCは電源モジュールとPLC情報を周辺機器へと伝達するネットワークモジュールとに接続される。
 本明細書で用いられる「デバイス」とは、PLCに取り付けられPLCにより制御される物理的な装置を含む。センサー、スイッチ、リレーなどは、本開示に記載されるデバイスの例である。しかし、本開示に係る「デバイス」は物理的な装置に限定されない。デバイスは、PLC内でメモリアドレスを割り当てられるレジスタや内部リレーなどの内部要素を指すこともある。また、デバイスは、共用アクセスメモリを介してPLCと通信できるソフトウェアを指してもよい。
 周辺機器がPLCに問い合わせを行う際、問い合わせは、周辺機器が監視したいコントローラ内のデバイスを提示する。例えば、問い合わせは「デバイスXはオンかオフか」といったものである。
 ここで、コントローラがデバイスを認識しない高レベル言語プログラムを実行する場合、こうした問い合わせはコントローラにより認識されないことがある。高レベル言語プログラム(例えば、C言語で書かれたプログラム)を実行するコントローラは、デバイス名の代わりに、変数名とその変数名に対するコントローラのメモリ内の物理アドレスとを認識する。高レベル言語プログラムを実行するこうしたコントローラが既存の生産システムにインストールされると、既存の周辺機器はコントローラと通信することができなくなる。
 しかし、高レベル言語プログラムは使い勝手が良く維持し易いこと、プログラマーがラダープログラムよりも高レベル言語プログラムを好むことから、顧客は高レベル言語プログラムを実行できる新型のコントローラの利用を希望する。こうした問題に対する可能な解決方法としては、十分とはいえないものの、コントローラと周辺機器との間に高価なミドルウェアを用いることが考えられる。
 このように、旧型の周辺機器と新型のコントローラとの通信における上記の問題を克服できるシステムが求められている。
 本発明の実施の形態は、少なくとも上記の問題やデメリットと、上述していない他のデメリットとに取り組むものである。なお、本発明は上述のデメリットを克服することを求められるものではなく、本発明の実施の形態は上述の問題のいずれかを克服しないこともある。
 高レベル言語プログラムを実行するプログラマブルロジックコントローラのシンボルテーブルを生成する方法の一例を提供する。この方法は、高レベル言語プログラムと、上記プログラマブルロジックコントローラにより制御されるデバイスと上記高レベル言語プログラム内の変数名との関係を規定する関連テーブルと、を読み取るステップと、各上記変数名の物理アドレス及び対応する上記デバイスを判定するために、上記高レベル言語プログラムと上記関連テーブルとをコンパイルしリンクさせるステップと、上記コンパイル及びリンクにより、各上記デバイスについて判定された上記物理アドレスを定義する上記シンボルテーブルを生成するステップと、上記シンボルテーブルを上記プログラマブルロジックコントローラのメモリに記憶するステップと、を含む。
 また、上記高レベル言語プログラムを実行し上記シンボルテーブルを記憶するプログラマブルロジックコントローラの一例を提供する。
 更に、周辺機器と高レベル言語プログラムを実行するプログラマブルロジックコントローラとの通信の方法の一例を提供する。この方法は、上記プログラマブルロジックコントローラにより制御されるデバイスに対し読み取りまたは書き込みを行う要求を上記周辺機器から受信するステップと、シンボルテーブルを読み取り上記プログラマブルロジックコントローラのメモリ内の上記デバイスの物理アドレスを判定するステップと、判定された上記物理アドレスに対し読み取りまたは書き込みを行うステップと、を含む。
 本発明にかかるシンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラは、高レベル言語プログラムを実行できるプログラマブルロジックコントローラが既存の周辺機器と容易に通信できるようになるという効果を奏する。
図1は、従来の産業オートメーション環境/生産システムを示す図である。 図2は、従来の方法に係る3つの異なるプログラムのコンパイルとコンパイルおよびリンク後の物理メモリ内のプログラム構成とを示す図である。 図3は、実施の形態に係る、3つの異なるプログラムのコンパイルとコンパイルおよびリンク後の物理メモリ内のプログラム構成とを示す図である。 図4は、実施の形態に係るコントローラのシンボルテーブルおよびメモリ構成を示す図である。 図5は、シンボルテーブルを生成する方法の一例を示す図である。 図6は、周辺機器からコントローラへのデータ読み取り/書き込み要求に対応する方法の例を示す図である。 図7は、周辺機器からコントローラへのデータ読み取り/書き込み要求に対応する方法の例を示す図である。 図8は、コントローラの構成の一例を示す図である。
 以下に、本発明にかかるシンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態.
 以下の説明では、異なる図面であっても同様の構成要素には同様の参照符号を用いる。明細書中に定義された詳細な構成や構成要素といった事項は、本発明の包括的な理解のためのものである。しかしながら、本発明は、このように特別に定義された事項がなくても実施することができる。また、徒に本発明を不明瞭とする恐れがあるため、公知の機能や構造の詳細は記載しない。
 本願に開示される実施の形態では、各デバイスを対応する変数名によりマッピングした関連テーブルを提供することにより、背景技術で述べた問題を解決する。しかし、当該実施の形態を説明する前に、高レベルアプリケーションプログラムのコンパイルプロセスを理解することが必要である。
 コンパイル部は、高レベル言語プログラム(「高レベルプログラム」とも称す)をオブジェクトモジュールへとコンパイルする。つまり、コンパイル部は、高レベルプログラムソースコードを基本ハードウェア(例えば、パイプラインプロセッサ)により理解されるアセンブリコードへと変換する。リンク部は、物理アドレスを、高レベルプログラム内で宣言された各オブジェクトファイルおよび各変数へと割り当てる。更に、リンク部は、各変数を、コントローラ(PLCはここではコントローラと称す)のメモリ内の各々の物理アドレスとマッピングさせたシンボルテーブルを生成する。図2は、3つの異なるプログラムのコンパイルとコンパイルおよびリンク後の物理メモリ内のプログラム構成とを示す。図2からわかるように、リンク部は、各変数を、コントローラメモリ内の各々の物理アドレスとマッピングするためのシンボルテーブル201を生成する。
 本開示の実施の形態によると、コンパイルの際には関連テーブル301が与えられる。この関連テーブル301は、開発者または高レベルプログラムを開発するエンジニアにより与えられる。コンパイル及びリンクの処理は図3で説明されるが、従来技術と実施の形態との違いは、コンパイル中に関連テーブル301が存在することである。シンボルテーブル302は、コンパイル及びリンクの処理の結果生成される。図3からわかるように、このシンボルテーブル302は、デバイス名と、変数(高レベルプログラムで宣言される)と、メモリ内の物理アドレスとの対応を含む。
 シンボルテーブル302は、列311、312、313、314、315、および316を有する。列311はデバイス名(デバイスメモリ名)を記述し、列312はデバイス番号(デバイス#)を記述し、列313はデータ型またはデータ単位を記述し、列314は列313のデータ型の情報量を記述し、列315はデバイスに関連付けられた変数名を記述する。シンボルテーブル302からわかるように、デバイスD200(コントローラの温度センサーにより測定される温度を記述)は、高レベルプログラム内で変数「Temperature_in_system」と表される。更に、変数「Temperature_in_system」には、新型コントローラ内の物理アドレスを記述した列316に見られるようにコントローラメモリ内で物理アドレス(#Address3)が割り当てられる。
 図4は、コンパイル・リンク後のコントローラのメモリ構成を示している。図4に示すように、シンボルテーブル302はコントローラのメモリ内に記憶される。
 図5は、デバイス名、変数名、および物理アドレス間の対応を記憶するシンボルテーブルを作成する方法を示す。S501で、高レベルプログラムおよび関連テーブル(例えば301)がコンパイル部により読み取られる。コンパイル部は、各高レベルプログラムおよび関連テーブルのアセンブリ言語ファイルを生成する。S502で、リンク部は高レベルプログラムで宣言される各変数に物理アドレスを割り当て、関連テーブルおよびコンパイルされた高レベルプログラムを読み取ることによりシンボルテーブル302を作成する。ステップS503で、コンパイル部は生成されたシンボルテーブル302をコントローラのメモリに記憶する。
 高レベル言語プログラムをコンパイルおよびリンクさせてオブジェクトファイルおよびシンボルファイルを生成するコントローラ102の外部には、高レベル言語処理ツール(プログラミングツール400)を設けることができる。つまり、プログラミングツール400は図5に示すプロセスを行う。プログラミングツール400は、入力として関連テーブル301および高レベルプログラムを受信し、後にコントローラにダウンロードされるシンボルテーブル302を出力してもよい。プログラミングツールは、ソースプログラムをコンパイルおよびリンクさせ、デバイスの関連テーブルと変数名とをコンパイルおよびリンクさせ、シンボルテーブルを生成する。つまり、プログラミングツール400は、シンボルテーブル302を含む実行ファイルを準備し実行ファイルをPLCへとダウンロードする。
 ここで、図3を参照して、プログラミングツール400により行われるリンクプロセスを詳細に説明する。プログラミングツール400は、プログラミングツール400へ入力される高レベル言語ソースプログラム21をコンパイルする高レベル言語プログラムコンパイル部401を含む。高レベル言語ソースプログラム21は、高レベルプログラミング言語で書かれたプログラムである。高レベル言語プログラムコンパイル部401は、オブジェクトモジュール24(オブジェクトファイル24)を出力する。オブジェクトファイル24は、高レベル言語ソースプログラム21に対応する。オブジェクトファイル24は、高レベル言語ソースプログラム21のソースコードからコンパイルされた機械用指令コードと高レベル言語ソースプログラム21で用いられる変数を表すシンボル情報とを含む。
 プログラミングツール400は、更に、オブジェクトファイル24と他のオブジェクトファイルとを統合してユーザーライブラリ26を作成するライブラリアン402を備える。プログラミングツール400に含まれるリンク部403は、オブジェクトファイル24と、ユーザーライブラリ26と、高レベル言語プログラム標準ライブラリ27とをリンクさせてロードモジュール29とシンボルテーブル302とを作成する。高レベル言語プログラム標準ライブラリ27は、頻繁に用いられるサブルーチンの機械指令コードを含む。主に、高レベル言語プログラム標準ライブラリ27は、高レベル言語プログラムコンパイル部401のプロバイダにより提供される。しかし、ユーザーが、自身の標準ライブラリを準備することもできる。シンボルテーブル302は、デバイス間の関係の定義の列またはリストと、変数と、物理アドレスとを含む。
 次に、周辺機器101からコントローラ102へのデータ読み取り要求に対応する処理を説明する。S601でコントローラは、コントローラ内に備えられたまたはコントローラにより制御されるデバイスの情報の要求を受信する。この要求は、デバイスのステータスを読み取る要求であってもよい。S602で、コントローラは、メモリからシンボルテーブル302を読み込む。S603で、コントローラは、シンボルテーブル302に基づいてデバイスの物理アドレスを判定する。S604で、コントローラは、メモリ内の物理アドレスに記憶されるデータを読み取り、S605で、読み取った情報を要求元の周辺機器へと送信する。
 なお、独立したプログラムをコントローラに記憶させ、そのプログラムがシンボルテーブルを読み込んでコントローラのメモリから物理アドレスを読み取ることとしてもよい。
 次に、周辺機器101からコントローラ102へのデータ書き込み要求を処理する処理を説明する。S701で、コントローラは、コントローラ内に備えられたまたはコントローラにより制御されるデバイスに対するデータ書き込みの要求を受信する。S702で、コントローラはメモリからシンボルテーブル302を読み取る。S703で、コントローラはシンボルテーブル302に基づいてデバイスの物理アドレスを判定する。S704で、コントローラは読み取ったメモリ内の物理位置にデータを書き込む。
 図8は、図6および図7の処理を実施するコントローラ800(コントローラ102)の構成の一例を示す。コントローラ800は、周辺機器から要求を受信して要求の内容を判定する要求受信部801を備える。シンボルテーブル読み取り部802は、コントローラのメモリに記憶されたシンボルテーブル302を読み取る。物理アドレス読み取り/書き込み部803は、シンボルテーブル302および受信要求に基づいて、コントローラのメモリ位置に対しデータの読み取りまたは書き込みを行う。
 コントローラのメモリは、記憶媒体の限定的リストから構成されてもよく、記憶媒体は、1以上のワイヤを有する電気接続、フレキシブルディスクなどのポータブルコンピュータディスケット、磁気テープや他の磁気媒体、ハードディスク、RAM(random access memory)、ROM(read-only memory)、EPPEOM(erasable programmable read-only memoryやFlashメモリ)、メモリカード、他のメモリチップやメモリカートリッジ、光ファイバ、ポータブルCD-ROM(compact disc read-only memory)、他の光学媒体、パンチカード、ペーパーテープ、他のホールパターンを有する物理媒体、コンピュータ/コントローラが読み取りを行うことができる他の媒体、または前述したものを適切に組み合わせたものを含む。
 更に、要求受信部801、シンボルテーブル読み取り部802、および物理アドレス読み取り/書き込み部803はプロセッサを用いて実装してもよい。
 上記実施の形態は、高レベルプログラムを実行し、更に、周辺機器からのデバイスに対して読み取りまたは書き込みを行うデバイス名を指定した要求を処理することができる新たなコントローラを提供する。新型コントローラは、シンボルテーブルを読み取り、デバイス名を、読み取りまたは書き込みが可能な物理アドレスへと変換する。これにより、新型コントローラは、ミドルウェアや周辺機器の更新を必要とせずに周辺機器からのデータアクセスの要求に対応することができる。シンボルテーブルは、プログラミングツールにより外部で用意することとし、プログラミングツールによりコントローラへとダウンロードされるとしてもよい。
 プログラミングツール400は、高レベル言語プログラムコンパイル部401、ライブラリアン402、およびリンク部403のタスクを行う、特定用途向け集積回路やデジタル信号プロセッサなどのプロセッサを備えてもよい。また、プログラミングツール400は、PLCと通信するための適切な手段を備えてもよい。例えば、プログラミングツール400は、USB(universal serial bus)を介してPLCと通信してもよい。
 更に、図5~7で説明した処理は、有形のコンピュータ読み取り可能な記憶媒体に記憶される指示に応じて操作する特定用途のコンピュータにより実施されてもよい。
 上記の例示の実施の形態は、単なる例であり、本発明を限定するものとは解釈されない。本教示は他の種類の装置にも容易に適用することができる。また、本発明の実施の形態の記載は説明を目的としたものであり、特許請求の範囲を限定するものではない。また、多くの代替、改良、変更は当業者にとって容易である。
 21 高レベル言語ソースプログラム
 24 オブジェクトファイル
 26 ユーザーライブラリ
 27 高レベル言語プログラム標準ライブラリ
 29 ロードモジュール
 100 生産システム
 101 周辺機器
 102、800 コントローラ
 103 ネットワーク
 201、302 シンボルテーブル
 301 関連テーブル
 311~316 列
 400 プログラミングツール
 401 高レベル言語プログラムコンパイル部
 402 ライブラリアン
 403 リンク部
 801 要求受信部
 802 シンボルテーブル読み取り部
 803 物理アドレス読み取り/書き込み部

Claims (5)

  1.  高レベル言語プログラムを実行するプログラマブルロジックコントローラのシンボルテーブルを生成するシンボルテーブル生成方法であって、
     高レベル言語プログラムと、前記プログラマブルロジックコントローラにより制御されるデバイスと前記高レベル言語プログラム内の変数名との関係を規定する関連テーブルと、を読み取るステップと、
     各前記変数名の物理アドレスおよび対応する前記デバイスを判定するために、前記高レベル言語プログラムと前記関連テーブルとをコンパイルしリンクさせるステップと、
     前記コンパイル及びリンクにより、前記デバイスそれぞれに対して判定された前記物理アドレスを定義する前記シンボルテーブルを生成するステップと、
     前記シンボルテーブルを前記プログラマブルロジックコントローラのメモリに記憶するステップと、
     を含むことを特徴とするシンボルテーブル生成方法。
  2.  高レベル言語プログラムを実行するプログラマブルロジックコントローラによる周辺機器との通信方法であって、
     前記プログラマブルロジックコントローラにより制御されるデバイスに対し読み取りまたは書き込みを行う要求を前記周辺機器から受信するステップと、
     シンボルテーブルを読み取り、前記デバイスに対し前記プログラマブルロジックコントローラのメモリ内の物理アドレスを判定するステップと、
     前記判定された物理アドレスに対し読み取りまたは書き込みを行うステップと、
     を含むことを特徴とする周辺機器との通信方法。
  3.  デバイスを制御するための高レベル言語プログラムを実行するプログラマブルロジックコントローラであって、
     前記プログラマブルロジックコントローラにより制御されるデバイスに対し読み取りまたは書き込みを行う要求を周辺デバイスから受信する要求受信部と、
     シンボルテーブルを読み取り、前記デバイスに対し前記プログラマブルロジックコントローラのメモリ内の物理アドレスを判定するシンボルテーブル読み取り部と、
     前記判定された物理アドレスに対し読み取りまたは書き込みを行う物理アドレス読み取り/書き込み部と、
     を備えることを特徴とするプログラマブルロジックコントローラ。
  4.  前記要求は前記デバイスの名称を含み、
     前記シンボルテーブルは、前記デバイスの前記名称と、前記デバイスに対応し前記高レベル言語プログラムで使用される変数名と、前記変数名に対応する前記プログラマブルロジックコントローラの前記メモリ内の物理アドレスとの関係を定義することを特徴とする請求項2に記載の周辺機器との通信方法。
  5.  前記要求は前記デバイスの名称を含み、
     前記シンボルテーブルは、前記デバイスの前記名称と、前記デバイスに対応し前記高レベル言語プログラムで使用される変数名と、前記変数名に対応する前記プログラマブルロジックコントローラの前記メモリ内の物理アドレスとの関係を定義することを特徴とする請求項3に記載のプログラマブルロジックコントローラ。
PCT/JP2011/076579 2011-07-01 2011-11-17 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ WO2013005350A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012510458A JP5079166B1 (ja) 2011-07-01 2011-11-17 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
DE112011105402.5T DE112011105402T5 (de) 2011-07-01 2011-11-17 Symboltabellen-Erzeugungsverfahren; Kommunikationsverfahren mit peripherer Ausrüstung und programmierbare Logiksteuerung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/175,106 2011-07-01
US13/175,106 US8832670B2 (en) 2011-07-01 2011-07-01 Programmable controller and programming tool for communication with legacy equipment

Publications (1)

Publication Number Publication Date
WO2013005350A1 true WO2013005350A1 (ja) 2013-01-10

Family

ID=47391395

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/076579 WO2013005350A1 (ja) 2011-07-01 2011-11-17 シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ

Country Status (3)

Country Link
US (1) US8832670B2 (ja)
DE (1) DE112011105402T5 (ja)
WO (1) WO2013005350A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020071833A (ja) * 2018-11-02 2020-05-07 横河電機株式会社 エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5864033B1 (ja) * 2014-07-14 2016-02-17 三菱電機株式会社 Plcシステムおよび演算式データ作成支援装置
JP6821497B2 (ja) * 2017-04-27 2021-01-27 株式会社日立産機システム 産業用コントローラのプログラム開発システム及び産業用コントローラのプログラム開発システムにおけるデータ共有方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334096A (ja) * 1992-06-01 1993-12-17 Fuji Electric Co Ltd 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
JP2005141435A (ja) * 2003-11-05 2005-06-02 Omron Corp ツール

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ218742A (en) * 1986-06-03 1990-09-26 Fisher & Paykel Programmed logic controller
US3878514A (en) * 1972-11-20 1975-04-15 Burroughs Corp LSI programmable processor
US3827030A (en) * 1973-01-29 1974-07-30 Gulf & Western Industries Programmable controller using a random access memory
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
JPH0830971B2 (ja) * 1984-03-26 1996-03-27 株式会社日立製作所 プログラマブルコントローラ
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
JP2661316B2 (ja) * 1990-03-24 1997-10-08 トヨタ自動車株式会社 複数のプログラマブルコントローラ間の並列運転による制御装置
US6192282B1 (en) * 1996-10-01 2001-02-20 Intelihome, Inc. Method and apparatus for improved building automation
US6088624A (en) * 1996-12-09 2000-07-11 Rockwell Technologies, Llc Industrial controller with flexible data structures
US5950006A (en) * 1997-11-05 1999-09-07 Control Technology Corporation Object-oriented programmable controller
FR2820222B1 (fr) * 2001-01-26 2003-03-21 Schneider Automation Procede de programmation d'une application d'automatisme
JP4566703B2 (ja) 2004-11-16 2010-10-20 Hoya株式会社 電子内視鏡装置
JP2009146229A (ja) 2007-12-14 2009-07-02 Fuji Electric Systems Co Ltd プログラマブルコントローラシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05334096A (ja) * 1992-06-01 1993-12-17 Fuji Electric Co Ltd 言語翻訳プログラム及びその出力結果を用いるデバッグ装置
JP2005141435A (ja) * 2003-11-05 2005-06-02 Omron Corp ツール

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020071833A (ja) * 2018-11-02 2020-05-07 横河電機株式会社 エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム
US11215960B2 (en) 2018-11-02 2022-01-04 Yokogawa Electric Corporation Engineering apparatus, control method of engineering apparatus, and program for generating executable code for controlling target hardware

Also Published As

Publication number Publication date
DE112011105402T5 (de) 2014-04-03
US20130006397A1 (en) 2013-01-03
US8832670B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
US6963781B2 (en) Electronic apparatus for a bus system
US7600234B2 (en) Method for launching applications
CN101228488B (zh) 操作和观测控制设备的方法、相应的操作/观测设备、控制设备及具有这种控制设备的机器
JP4850556B2 (ja) プログラム作成支援装置およびその方法
EP3042254B1 (en) Systems and methods for virtualizing a programmable logic controller
WO2013114926A1 (ja) サポート装置、サポートプログラムを記録した記録媒体、および実行可能プログラムを生成する方法
US8365163B2 (en) Method for configuring a computer program
US8806470B2 (en) System, method, and apparatus for software maintenance of sensor and control systems
CN109964181B (zh) 用于工业自动化设备的控制器和对这种控制器编程和运行的方法
US20060031664A1 (en) Method and system for loading and updating firmware in an embedded device
JP6065008B2 (ja) 制御装置
EP3647941B1 (en) Engineering apparatus, control method of engineering apparatus, and program
US6826432B2 (en) Process for programming an automation application
JP2008282363A (ja) プログラマブルコントローラ、プログラム作成支援装置、コンピュータプログラム及びplcシステム
JP6550269B2 (ja) プログラム作成支援装置、制御方法およびプログラム
JP2009146229A (ja) プログラマブルコントローラシステム
US6278960B1 (en) Assembly for remote control and/or remote operation of a field device by means of a controller via a field bus
WO2013005350A1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
JP2017142794A (ja) プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム
KR102280116B1 (ko) 엔지니어링 장치, 엔지니어링 장치의 제어 방법 및 프로그램
JP2009157533A (ja) プログラマブルコントローラシステム
JP5079166B1 (ja) シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ
US20190306250A1 (en) Support apparatus, non-transitory computer-readable recording medium and setting method
JP6135247B2 (ja) 情報処理装置および情報処理プログラム
US8050784B2 (en) Integrated programmer reference for industrial control device data

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2012510458

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11869159

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 112011105402

Country of ref document: DE

Ref document number: 1120111054025

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11869159

Country of ref document: EP

Kind code of ref document: A1