JP2009245194A - Programmable controller, programmable controller support apparatus, and programmable controller system - Google Patents

Programmable controller, programmable controller support apparatus, and programmable controller system Download PDF

Info

Publication number
JP2009245194A
JP2009245194A JP2008091393A JP2008091393A JP2009245194A JP 2009245194 A JP2009245194 A JP 2009245194A JP 2008091393 A JP2008091393 A JP 2008091393A JP 2008091393 A JP2008091393 A JP 2008091393A JP 2009245194 A JP2009245194 A JP 2009245194A
Authority
JP
Japan
Prior art keywords
programmable controller
embedded software
software
function block
additional information
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.)
Withdrawn
Application number
JP2008091393A
Other languages
Japanese (ja)
Inventor
Yukiteru Yuo
幸輝 湯尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co Ltd
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 Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2008091393A priority Critical patent/JP2009245194A/en
Publication of JP2009245194A publication Critical patent/JP2009245194A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To guarantee integrity by solving problems in "a data exchange method and a starting method" between embedded software and an application of a programmable controller, wherein in accessing the embedded software created by a user by means of a general purpose PC as an application software of the programmable controller, (a) the embedded software accessed from a plurality of positions such as sub-routines cannot be described, and (b) since the application software of the programmable controller and the embedded software are asynchronously operated, the timing of processing, start and completion of the embedded software cannot be grasped from the application of the programmable controller. <P>SOLUTION: Instance information to be added to the embedded software and instance information to be added to the application software are used to compare both of them, and the continuation of performing a program is determined on the basis of the right or wrong of the comparison. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、プログラマブルコントローラ(以下、PLCと略す場合もある)のファンクションブロック(以下、FBと略す場合もある)に関し、特にユーザが作成した組み込みソフトウェアと該組み込みソフトウェアを扱うアプリケーションソフトウェアとにおける動作の保証に関する。   The present invention relates to a function block (hereinafter sometimes abbreviated as FB) of a programmable controller (hereinafter also abbreviated as PLC), and in particular, operation of embedded software created by a user and application software that handles the embedded software. Regarding warranty.

従来、プログラマブルコントローラはシーケンス命令実行を高速に行わせるための専用ハードウェア(大規模専用LSI:Large Scale Integrationなどに代表される)を備えるものが主流であった。これら専用ハードウェアにおいては、各コントローラのメーカーが提供する支援ツールによって、マシンコードを生成する必要があった。
しかし、「専用ハードウェアは高価である」、「専用のマシン語体系をもちシステムプログラム開発が比較的困難である」というデメリットも存在していた。
近年、パーソナルコンピュータ、携帯端末などの普及により、市販の汎用CPU(Central Processing Unit)の技術革新が進み、高速実行が可能なCPUを非常に安価に入手することが可能になってきた。そのため、汎用CPUを用いて専用LSIをエミュレートして実行しても、充分に所望の実行性能を得る事ができるようになった。
また、汎用であるためファームウェアの開発ツールも市場から調達できるようになってきたため、汎用CPUを使ったプログラマブルコントローラも作られるようになってきている。
このような汎用CPUをベースとしたプログラマブルコントローラにおいては、ユーザに提供するアプリケーション開発環境として、“プログラマブルコントローラに使用されている汎用CPUに対応した組み込みソフトウェア開発環境で汎用プログラム言語(C言語、マイコン対応アセンブラなど)を用いてプログラミングし、プログラマブルコントローラにダウンロードした後、実行する方法”が注目されている。
Conventionally, a programmable controller has been mainly provided with dedicated hardware (represented by Large Scale Integration, etc.) for causing sequence instructions to be executed at high speed. In these dedicated hardware, it was necessary to generate machine code by a support tool provided by the manufacturer of each controller.
However, there were also demerits that “dedicated hardware is expensive” and “development of system programs is relatively difficult with a dedicated machine language system”.
In recent years, with the spread of personal computers, portable terminals, and the like, technological innovation of commercially available general-purpose CPUs (Central Processing Units) has progressed, and it has become possible to obtain CPUs capable of high-speed execution at a very low cost. For this reason, even when a dedicated LSI is emulated and executed using a general-purpose CPU, it is possible to obtain a desired execution performance sufficiently.
Also, since it is general-purpose and firmware development tools can be procured from the market, programmable controllers using general-purpose CPUs are also being made.
In such a programmable controller based on a general-purpose CPU, the application development environment provided to the user is “a general-purpose programming language (C language, microcomputer compatible) in an embedded software development environment corresponding to the general-purpose CPU used in the programmable controller. "A method of executing the program after it is programmed using an assembler or the like, downloaded to a programmable controller" is attracting attention.

実際、近年では汎用CPUをベースとしながら従来の専用LSIを使用したものと全く同じ動作をするプログラマブルコントローラや、逆に従来の支援ツールを使用せずに組み込みソフトウェア開発環境でプログラミングを行うC言語コントローラなども発売されている。
このようなC言語コントローラにおいては、ユーザのプログラミング負荷を軽減するためにリアルタイム・オペレーティング・システム(以下、リアルタイムOSと呼ぶ)が搭載されている。リアルタイムOSでは、タスクと呼ばれる処理単位を複数並列に実行可能であり、タスク間の通信機能、タスクの生成及び起動などの実効制御の機能を備えている。タスクの時間管理をリアルタイムOSが行うので、ユーザはプログラミングする際にスケジューリングの負荷から開放される利点があげられる。
ところで、プログラマブルコントローラのアプリケーションソフトウェアは、プログラマブルコントローラを効率よく扱うために、制御ネットワークに接続されている外部接続機器(例えば、入出力モジュール)をメモリとして扱うなど、プログラマブルコントローラシステム固有のメモリアドレス体系を保持している。そのため、メモリ管理においては、汎用CPUの物理アドレスに直接依存していない。また、プログラマブルコントローラのアプリケーションソフトウェアの実行時には、プログラマブルコントローラのタスクとして登録されており、これらは定周期やイベントなどの指定されたタイミングで起動されるが、プログラマブルコントローラのアプリケーションソフトウェアの作成者は、それらのアプリケーションソフトウェアのタスクとシステムソフトを動かしているリアスタイムOSとの動作の関連を意識することが出来ない。
In fact, in recent years, a programmable controller that is based on a general-purpose CPU and operates exactly the same as that using a conventional dedicated LSI, or conversely, a C language controller that performs programming in an embedded software development environment without using a conventional support tool Etc. are also on sale.
In such a C language controller, a real-time operating system (hereinafter referred to as a real-time OS) is mounted in order to reduce a user's programming load. A real-time OS can execute a plurality of processing units called tasks in parallel, and has a communication function between tasks, and an effective control function such as task generation and activation. Since the time management of tasks is performed by the real-time OS, the user is freed from the scheduling load when programming.
By the way, the application software of the programmable controller uses a memory address system unique to the programmable controller system such as handling externally connected devices (for example, input / output modules) connected to the control network as memory in order to handle the programmable controller efficiently. keeping. Therefore, the memory management does not depend directly on the physical address of the general-purpose CPU. In addition, when the application software of the programmable controller is executed, it is registered as a task of the programmable controller, and these are started at a specified timing such as a fixed period or an event. It is not possible to be aware of the relationship between the application software task and the operation of the real-time OS running the system software.

このことに起因し、以下の問題点が挙げられる。
・サブルーチンのような複数箇所から呼び出される組み込みソフトウェアの記述が出来ない(例えば、データ交換領域としてプログラマブルコントローラのアプリケーションメモリの固定番地を組み込みソフトウェア中で明示的に記述しようとすると、データ交換領域アドレスをそれぞれ個別に用意しなければならず、同じ処理にもかかわらず、別のプログラムになってしまう)。
・プログラマブルコントローラのアプリケーションソフトウェアと組み込みソフトウェアが非同期に動作するので、プログラマブルコントローラのアプリケーションソフトウェアからは、組み込みソフトウェアの処理や起動、完了のタイミングを把握出来ない。
このように、組み込みソフトウェアとプログラマブルコントローラのアプリケーションソフトウェアにおける「データ交換方法、及び起動方法」が問題になる。
特許文献1は、ユーザFBをメーカーの提供するシステムFBとして認識させる事によりデータ交換及び起動の問題を解決している。
特許文献2は、組み込みソフトウェアのユーザFBを先にPLC側にダウンロードし、これを用いたアプリケーションソフトウェアのコンパイル時にユーザFB番号を全て発番することにより、先にダウンロードした組み込みソフトウェアのユーザFBを認識可能としている。
Due to this, there are the following problems.
・ Embedded software called from multiple places such as subroutines cannot be described (for example, if a fixed address of the application memory of the programmable controller is explicitly described in the embedded software as a data exchange area, the data exchange area address is Each must be prepared separately, and it will be a separate program despite the same process).
-Since the application software of the programmable controller and the embedded software operate asynchronously, it is impossible to grasp the timing of processing, activation and completion of the embedded software from the application software of the programmable controller.
Thus, the “data exchange method and activation method” in the application software of the embedded software and the programmable controller becomes a problem.
Patent Literature 1 solves the problem of data exchange and activation by recognizing a user FB as a system FB provided by a manufacturer.
Patent Document 2 recognizes the previously downloaded embedded software user FB by downloading the embedded software user FB to the PLC first and issuing all the user FB numbers when compiling the application software using this. It is possible.

特許文献1、2のいずれも、FBを一意に認識可能なFB番号を用いている。また、これらを管理するFBテーブルの扱いに着眼した発明となっている。
以下に、このような管理方法について説明する。
始めに、図4〜6にて基本構成について説明する。次に、図7〜13にてプログラマブルコントローラで使用するファンクションブロックの詳細について説明する。続けて、図14〜16にて組み込みソフトウェアのファンクションブロック作製方法について説明する。最後に、図17〜20にてFBテーブルとその使用方法について説明する。
図4は、プログラマブルコントローラシステムの構成の一例を説明したものである。パソコン100は一般的なパソコンであり、このパソコン100にはプログラマブルコントローラを支援する図示しない支援ツールが格納されている。パソコン100と支援対象のプログラマブルコントローラ102は、ケーブル110で接続されている。また、プログラマブルコントローラ102〜106と制御対象となる入出力モジュール108とは、制御用ネットワーク112で接続されている。制御用ネットワーク112の一例としては、出願人の製品であるMICREX-SXシリーズで使用しているSXバスなどがある。
パソコン100において、ファンクションブロック等を用いてプログラミングを行い、コンパイル後に実行ファイルをプログラマブルコントローラ102にケーブル110等を介してダウンロードする(このため、パソコン100はローダと呼ばれることもある)。
Both Patent Documents 1 and 2 use an FB number that can uniquely recognize the FB. Further, the invention focuses on the handling of the FB table for managing these.
Hereinafter, such a management method will be described.
First, the basic configuration will be described with reference to FIGS. Next, details of function blocks used in the programmable controller will be described with reference to FIGS. Next, a method for creating a function block of embedded software will be described with reference to FIGS. Finally, the FB table and its usage will be described with reference to FIGS.
FIG. 4 illustrates an example of the configuration of the programmable controller system. The personal computer 100 is a general personal computer, and the personal computer 100 stores a support tool (not shown) that supports the programmable controller. The personal computer 100 and the programmable controller 102 to be supported are connected by a cable 110. The programmable controllers 102 to 106 and the input / output module 108 to be controlled are connected by a control network 112. An example of the control network 112 is the SX bus used in the MICREX-SX series, which is the product of the applicant.
In the personal computer 100, programming is performed using function blocks and the like, and after execution, the execution file is downloaded to the programmable controller 102 via the cable 110 or the like (for this reason, the personal computer 100 may be called a loader).

なお、ここではプログラマブルコントローラシステムの一例として、一台のパソコン100と複数のプログラマブルコントローラ102〜106、及び複数の入出力モジュール108とによる構成を示しているが、これは発明を限定するものではなく、それぞれ任意の台数によって構成されていても構わない。また、パソコン100の支援対象はプログラマブルコントローラ102〜106のいずれか1つ/全てであっても構わない。
ここでは、パソコン100と支援対象のプログラマブルコントローラ102〜106は、ケーブル110によって接続されているが、これに限ったものではなく、無線LANであっても良いし、任意の媒体を介して情報を遣り取りしても構わない。
図5は、プログラマブルコントローラの概略ハード構成を説明したものである。プログラマブルコントローラ120は、システムプログラム及び/又はユーザプログラムを実行するCPU124を有し、CPU124は内部バス134を介してプログラム、命令、各種データ等を遣り取りする。ここで、システムプログラム及び/又はユーザプログラムを電源断時も保存しておくために、不揮発性の書き換えメモリとしてフラッシュメモリ128を有する。一般に、フラッシュメモリはSRAM等に比べ動作が低速である為、プログラムの保存に適していても、実行には向かない。そこで、フラッシュメモリ128からシステムプログラム及び/又はユーザプログラムを展開・実行するSRAMとして、プログラムメモリ130を有する。また、システムプログラム及び/又はユーザプログラムがリード/ライトする情報を管理・保存するメモリ領域(SRAM)として、データメモリ132も有する。
Here, as an example of the programmable controller system, a configuration of one personal computer 100, a plurality of programmable controllers 102 to 106, and a plurality of input / output modules 108 is shown, but this does not limit the invention. , Each may be configured by an arbitrary number. The support target of the personal computer 100 may be any one or all of the programmable controllers 102 to 106.
Here, the personal computer 100 and the programmable controllers 102 to 106 to be supported are connected by the cable 110, but the present invention is not limited to this, and a wireless LAN may be used, and information may be transmitted via an arbitrary medium. You can exchange it.
FIG. 5 illustrates a schematic hardware configuration of the programmable controller. The programmable controller 120 includes a CPU 124 that executes a system program and / or a user program. The CPU 124 exchanges programs, instructions, various data, and the like via an internal bus 134. Here, in order to save the system program and / or the user program even when the power is turned off, the flash memory 128 is provided as a nonvolatile rewrite memory. In general, a flash memory operates at a lower speed than an SRAM or the like, so that even if it is suitable for storing a program, it is not suitable for execution. Therefore, a program memory 130 is provided as an SRAM that expands and executes a system program and / or a user program from the flash memory 128. Further, a data memory 132 is also provided as a memory area (SRAM) for managing and storing information read / written by the system program and / or the user program.

一方でプログラマブルコントローラ120には、大別して外部機器との通信機能を2つ有する。1つは、後述のプログラマブルコントローラ支援装置140からユーザの指示やプログラミング、実行ファイル等をCPU124と遣り取りするインターフェース機能であるドライバ/レシーバ122である。もう1つは入出力モジュール等の制御対象機器との通信を行う際に、専用線であるバスの調停等を行うバスコントローラ126である。
なお、フラッシュメモリ128、プログラムメモリ130、データメモリ132は、データ保存/管理の面や実行性の側面から複数のユニットに分けているが、十分な容量や速度性能および電源断時のデータ保証が可能なときは、例えば1つのメモリであっても構わない。
図6は、プログラマブルコントローラ支援装置の概略ハード構成を説明したものである。プログラマブルコントローラ支援装置140は、ユーザが所望の制御プログラムを作成する為に入力を行う入力デバイス146と、この入力内容等を表示する表示デバイス148、所定のプログラムを記憶するための記憶装置150、接続線や外部ネットワーク等を介し対象のプログラマブルコントローラと通信する通信I/F144等を有する。CPU142は、内部バス152を介し、入力デバイス146より作成されたプログラムを必要に応じて記憶装置150に記憶し、また図示しない支援ツールのコンパイル機能により実行ファイルを作成し、これを通信I/F144を介して対象のプログラマブルコントローラに送信(ダウンロード)する。また、必要に応じて、後述のFB番号も送信する。
On the other hand, the programmable controller 120 roughly has two communication functions with external devices. One is a driver / receiver 122 that is an interface function for exchanging user instructions, programming, execution files, and the like with the CPU 124 from a programmable controller support device 140 described later. The other is a bus controller 126 that performs arbitration of a bus, which is a dedicated line, when communicating with a control target device such as an input / output module.
The flash memory 128, the program memory 130, and the data memory 132 are divided into a plurality of units from the viewpoint of data storage / management and execution, but sufficient capacity, speed performance, and data guarantee at the time of power interruption are ensured. When possible, for example, one memory may be used.
FIG. 6 illustrates a schematic hardware configuration of the programmable controller support device. The programmable controller support device 140 includes an input device 146 for inputting a user to create a desired control program, a display device 148 for displaying the input contents, a storage device 150 for storing a predetermined program, a connection A communication I / F 144 that communicates with the target programmable controller via a line or an external network. The CPU 142 stores the program created from the input device 146 via the internal bus 152 in the storage device 150 as necessary, and creates an execution file by a compiling function of a support tool (not shown), and creates the execution file as a communication I / F 144. Is sent (downloaded) to the target programmable controller. Also, an FB number described later is transmitted as necessary.

ユーザは、プログラマブルコントローラ支援装置140における支援ツールを用いてプログラミングを行うことになるが、この際にファンクションブロックを使用することが多い。記述言語規格IEC61131−3に規定されているファンクションブロックでは、処理コードと処理を行う際に使用するデータ(インスタンス)とが一体になった処理構造になっている。
図7は、ファンクションブロックの入出力概略の一例を説明したものである。図7(a)の例では、矩形部分で表示したファンクションブロック本体160に対し、左側に入力端子162、右側に出力端子164が配置されている。ここでは、ファンクションブロック本体160の上部中央に記載のCTUがファンクションブロック名称を、CU、R、PV、Q、CVは端子名称を表している。また、入力端子162、出力端子164に記載の情報(BOOL、INT)は端子のデータ型を表している。
同様に、図7(b)の例では、矩形部分で表示したファンクションブロック本体170に対し、左側に入力端子172、右側に出力端子174が配置されている。ここでは、ファンクションブロック本体170の上部中央に記載のUFBがファンクションブロック名称を、IN1、IN2、OUT1、OUT2は端子名称を表している。入力端子172、出力端子174に記載の情報(INT)は端子のデータ型を表している。
The user performs programming using a support tool in the programmable controller support apparatus 140, and often uses function blocks. The function block defined in the description language standard IEC61131-3 has a processing structure in which a processing code and data (instance) used for processing are integrated.
FIG. 7 illustrates an example of an input / output outline of the function block. In the example of FIG. 7A, an input terminal 162 is disposed on the left side and an output terminal 164 is disposed on the right side with respect to the function block main body 160 displayed in a rectangular portion. Here, the CTU described in the upper center of the function block main body 160 represents a function block name, and CU, R, PV, Q, and CV represent terminal names. Further, the information (BOOT, INT) described in the input terminal 162 and the output terminal 164 represents the data type of the terminal.
Similarly, in the example of FIG. 7B, an input terminal 172 is disposed on the left side and an output terminal 174 is disposed on the right side of the function block main body 170 displayed in a rectangular portion. Here, UFB described in the upper center of the function block main body 170 represents a function block name, and IN1, IN2, OUT1, and OUT2 represent terminal names. Information (INT) described in the input terminal 172 and the output terminal 174 represents the data type of the terminal.

図8は、ファンクションブロックのインスタンスの構成の一例を説明したものである。図8(a)における最小の矩形は、ビット量を表す。CU、R、Qが1つの矩形から構成されているのは、データ型がBOOL(図7(a)参照)であることを表し、PV、CVが16個分の矩形から構成されているのは、データ型がINT(図7(a)参照)であることを表す。また、図8(a)における斜線の箇所は未使用領域であることを表す。同様に、図8(b)のIN1、IN2、OUT1、OUT2は、16個分の矩形から構成されており、データ型がINT(図7(b)参照)であることを表す。
なお、ここでは模式的な表示としているが、実際には連続した領域としてメモリ割り付けが行われる。図5において、これらの単位でデータメモリ132にアドレスが割り付けられ、インスタンス領域として管理される。実行時のファンクションブロックのプログラムコードはプログラムメモリ130に、インスタンスの情報はデータメモリ132に配置される。これらの情報を連携して実行することによりファンクションブロックは機能する。
ところで、ファンクションブロックは、その性質から大きく分けると2つに分類される。ここではこれらをそれぞれ、ユーザファンクションブロック(以降、ユーザFBと略す)とシステムファンクションブロック(以降、システムFBと略す)と呼ぶ。
FIG. 8 illustrates an example of the configuration of an instance of a function block. The minimum rectangle in FIG. 8A represents the bit amount. The fact that CU, R and Q are composed of one rectangle indicates that the data type is BOOT (see FIG. 7A), and PV and CV are composed of 16 rectangles. Indicates that the data type is INT (see FIG. 7A). Further, the hatched portion in FIG. 8A represents an unused area. Similarly, IN1, IN2, OUT1, and OUT2 in FIG. 8B are composed of 16 rectangles, and indicate that the data type is INT (see FIG. 7B).
Although a schematic display is shown here, memory allocation is actually performed as a continuous area. In FIG. 5, addresses are allocated to the data memory 132 in these units, and managed as instance areas. The program code of the function block at the time of execution is arranged in the program memory 130, and the instance information is arranged in the data memory 132. The function block functions by executing these pieces of information in cooperation.
By the way, the function blocks are roughly classified into two according to their properties. Here, these are called a user function block (hereinafter abbreviated as user FB) and a system function block (hereinafter abbreviated as system FB), respectively.

ユーザFBは、ユーザがファンクションブロックの中身(処理自体)も含めてプログラミングするもので、プログラマブルコントローラ支援装置でユーザFB自体もコンパイルされた後、プログラマブルコントローラにダウンロードされる。
一方でシステムFBは、プログラマブルコントローラのメーカが提供するファンクションブロックである。その為、予めその機能がプログラマブルコントローラ本体のシステムプログラムに含まれており、ユーザはプログラマブルコントローラのアプリケーション内でそのシステムFBを呼び出すコードを記述するだけで、その機能を使用する事ができる。
また、システムFBではプログラマブルコントローラで使用されるマイコンや専用LSIに最適な設計がメーカによりなされているが、ユーザはこれらのシステムFBに手を加えることは出来ず、参照することのみ許されているのが一般的である。
なお、ユーザが作成した組み込みソフトウェアによるファンクションブロックは本来はユーザFBなので、プログラマブルコントローラにおいてはユーザFBとして扱うのが一般的だが、プログラマブルコントローラにシステムFBとして登録する方法を用いても構わない。
The user FB is programmed by the user including the contents of the function block (processing itself), and the user FB itself is compiled by the programmable controller support apparatus and then downloaded to the programmable controller.
On the other hand, the system FB is a function block provided by the manufacturer of the programmable controller. Therefore, the function is included in the system program of the programmable controller main body in advance, and the user can use the function only by writing a code for calling the system FB in the application of the programmable controller.
In addition, in the system FB, the optimum design for the microcomputer or dedicated LSI used in the programmable controller is made by the manufacturer, but the user cannot modify the system FB and is only allowed to refer to it. It is common.
In addition, since the function block by the built-in software created by the user is originally the user FB, it is generally handled as the user FB in the programmable controller, but a method of registering as a system FB in the programmable controller may be used.

ここまでに説明した図7(a)、図8(a)はシステムFBの一例を、図7(b)、図8(b)はユーザFBの一例を示したものである。
図9は、FBをプログラマブルコントローラのアプリケーションから呼び出した場合のプログラムの一例を説明したものである。図9(a)では、PG0というプログラムから図7(a)のファンクションブロックであるCTUを呼び出している。インスタンス180は、PG0においてCTUのインスタンスであることを表している。同一のファンクションブロックでも、インスタント名が異なれば処理も異なる。このため、インスタント名ごとに対応する対象データ領域を有し、ここではインスタンス名としてCTU#1となっている。変数182はPG0内で定義されるが、インスタンス180の入力値として受け渡す。同様に、変数184はPG0内で定義されるが、インスタンス180の実行結果である出力値を受け渡される。
図9(b)も同様で、PG1というプログラムから図7(b)のファンクションブロックであるUFBを呼び出している。インスタンス190は、PG1においてUFBのインスタンスであることを表している。ここではインスタンス名は、UFB#1となっている。
変数192はPG1内で定義されるが、インスタンス192の入力値として受け渡す。同様に、変数194はPG1内で定義されるが、インスタンス190の実行結果である出力値を受け渡される。
FIGS. 7A and 8A described so far show examples of the system FB, and FIGS. 7B and 8B show examples of the user FB.
FIG. 9 illustrates an example of a program when FB is called from an application of a programmable controller. In FIG. 9A, the CTU which is the function block of FIG. 7A is called from the program PG0. An instance 180 represents that it is a CTU instance in PG0. Even in the same function block, processing is different if the instant name is different. Therefore, there is a target data area corresponding to each instant name, and here, the instance name is CTU # 1. The variable 182 is defined in PG 0 but is passed as an input value of the instance 180. Similarly, the variable 184 is defined in PG0, but the output value that is the execution result of the instance 180 is passed.
The same applies to FIG. 9B, and UFB, which is the function block of FIG. 7B, is called from the program PG1. An instance 190 represents a UFB instance in PG1. Here, the instance name is UFB # 1.
The variable 192 is defined in PG1, but is passed as an input value of the instance 192. Similarly, the variable 194 is defined in PG1, but the output value that is the execution result of the instance 190 is passed.

図10は、PG0の擬似的なプログラムコードを説明したものである。コード200、210はプログラムの開始、終了を示すタグであり、実質上、無処理のコードになる。コード202は図9(a)の変数182と対応している。コード上では、A、CTU#1.CUのような表記となっているが、実際にはこれらの変数(或いはインスタンス領域)には、プログラマブルコントローラのデータメモリのアドレスが割り付けられている。ここで、CTU#1はインスタンス領域の先頭アドレス、CTU#1.CUはその構成要素(プロパティ)であるCUのアドレスが割り付けられている。CTU#1.RやCTU_1.PVについても同様である。ここでは、A、B、Cを入力値として、CTU#1はインスタンス領域のCTU#1.CU、CTU#1.R、CTU#1.PVに格納する。コード204はPUSH命令であり、インスタンス領域のアドレスをスタック等に保存しておく命令である。コード206はCAL命令であり、ファンクションブロックCTUのプログラムコードを呼び出す。コード208は、図9(a)の変数184と対応している。コード206で呼び出されたファンクションブロックCTUの処理の終了後に、実行結果を出力値として、CTU#1はインスタンス領域のCTU#1.Q、CTU#1.CVから値を取り出し、D、Eに格納する。   FIG. 10 illustrates pseudo program code of PG0. Codes 200 and 210 are tags indicating the start and end of the program, and are substantially unprocessed codes. The code 202 corresponds to the variable 182 in FIG. On the code, A, CTU # 1. Although it is represented as CU, in reality, the address of the data memory of the programmable controller is allocated to these variables (or instance areas). Here, CTU # 1 is the start address of the instance area, CTU # 1. A CU is assigned an address of a CU that is a component (property) of the CU. CTU # 1. R and CTU_1. The same applies to PV. Here, ATU, B, and C are input values, and CTU # 1 is CTU # 1. CU, CTU # 1. R, CTU # 1. Store in PV. A code 204 is a PUSH instruction, which is an instruction for storing the address of the instance area in a stack or the like. Code 206 is a CAL instruction that calls the program code of the function block CTU. The code 208 corresponds to the variable 184 in FIG. After the processing of the function block CTU called by the code 206 is completed, the execution result is used as an output value, and CTU # 1 is stored in the CTU # 1. Q, CTU # 1. A value is extracted from CV and stored in D and E.

図11は、PG1の擬似的なプログラムコードを説明したものであり、図10と同様な処理となる。コード220、230はプログラムの開始、終了を示すタグ、コード222にてUFB_1のインスタンス領域に引き渡す値を入力し、コード224でPUSH命令、コード226でUFBを呼び出し、コード228で実行結果をインスタンス領域から受けとる。
図12は、プログラマブルコントローラにおけるシステムFBの処理の一例を概略フローチャートで説明したものである。ここではプログラマブルコントローラのアプリケーションの処理の1つとして、PG0が実行されたとき、PG0におけるシステムFB(CTU)がどのように処理されるかについて、その概略を示す。
図から明らかなように、PG0の処理(フローF100)において、CAL処理(フローF102)が呼び出され、その後、CTUの実体が処理(フローF104)されて、フローF100に戻り処理を完了する。
順を追って説明すると、PG0の実行中において、プログラマブルコントローラに予め実装されているCAL処理が呼び出される(ステップS100)。また、ステップS100の前処理として、システムFB(CTU)のインスタンス(CTU_1)のアドレスはデータメモリ上にスタックされ、インスタント領域に格納されている。CAL処理では、始めにシステムFB(CTU)処理後の戻りアドレスを保存する(ステップS102)。その上で、スタックに格納されているインスタンス領域のアドレスを取り出し(ステップS104)、呼び出そうとしているシステムFB(CTU)のシステムFB番号を後述のシステムFBテーブル(図17参照)から検索し、アドレス情報を取り出す(ステップS106)。インスタンス領域のアドレスをパラメータにセットしてシステムFB(CTU)の処理にジャンプする(ステップS108)。システムFB(CTU)の処理終了後、ステップS102で保存しておいた戻りアドレスにジャンプした後、PG0の処理を継続する。
FIG. 11 illustrates the pseudo program code of PG1, and the processing is the same as that in FIG. Codes 220 and 230 are tags indicating the start and end of the program, a value to be passed to the instance area of UFB_1 at code 222, a PUSH instruction at code 224, a UFB at code 226, and the execution result at instance area in code 228 Take from.
FIG. 12 is a schematic flowchart illustrating an example of processing of the system FB in the programmable controller. Here, an outline of how the system FB (CTU) in PG0 is processed when PG0 is executed as one of the processes of the application of the programmable controller is shown.
As is apparent from the figure, in the process of PG0 (flow F100), the CAL process (flow F102) is called, and then the entity of the CTU is processed (flow F104), returning to the flow F100 and completing the process.
To explain step by step, during the execution of PG0, a CAL process pre-installed in the programmable controller is called (step S100). In addition, as preprocessing in step S100, the address of the instance (CTU_1) of the system FB (CTU) is stacked on the data memory and stored in the instant area. In the CAL process, first, the return address after the system FB (CTU) process is stored (step S102). Then, the address of the instance area stored in the stack is taken out (step S104), the system FB number of the system FB (CTU) to be called is retrieved from the system FB table (see FIG. 17) described later, Address information is extracted (step S106). The address of the instance area is set as a parameter, and the process jumps to system FB (CTU) processing (step S108). After the processing of the system FB (CTU) is completed, after jumping to the return address stored in step S102, the processing of PG0 is continued.

図13は、プログラマブルコントローラにおけるユーザFBの処理の一例を概略フローチャートで説明したものである。基本的に図12のシステムFBの処理と同様になる。ここではプログラマブルコントローラのアプリケーションの処理の1つとして、PG1が実行されたとき、PG1におけるユーザFB(UFB)がどのように処理されるかについて、その概略を示す。
図から明らかなように、PG1の処理(フローF110)において、CAL処理(フローF114)が呼び出され、その後UFBの実体が処理(フローF112)されて、フローF110に戻り処理を完了する。
順を追って説明すると、PG1の実行中において、プログラマブルコントローラに予め実装されているCAL処理が呼び出される(ステップS110)。また、ステップS110の前処理として、ユーザFB(UFB)のインスタンス(UFB_1)のアドレスはデータメモリ上にスタックされ、インスタント領域に格納されている。CAL処理では、始めにユーザFB(UFB)処理後の戻りアドレスを保存する(ステップS112)。その上で、スタックに格納されているインスタンス領域のアドレスを取り出し(ステップS114)、呼び出そうとしているユーザFB(UFB)のユーザFB番号を後述のユーザFBテーブル(図18参照)から検索し、アドレス情報を取り出す(ステップS116)。インスタンス領域のアドレスをパラメータにセットしてユーザFB(UFB)の処理にジャンプする(ステップS118)。ユーザFB(UFB)の処理終了後、ステップS112で保存しておいた戻りアドレスにジャンプした後、PG1の処理を継続する。
FIG. 13 is a schematic flowchart illustrating an example of processing of the user FB in the programmable controller. This is basically the same as the processing of the system FB in FIG. Here, an outline of how the user FB (UFB) in PG1 is processed when PG1 is executed as one of the processes of the application of the programmable controller is shown.
As is apparent from the figure, in the process of PG1 (flow F110), the CAL process (flow F114) is called, and then the UFB entity is processed (flow F112), and the process returns to the flow F110 to complete the process.
To explain step by step, during the execution of PG1, a CAL process pre-installed in the programmable controller is called (step S110). In addition, as preprocessing in step S110, the address of the instance (UFB_1) of the user FB (UFB) is stacked on the data memory and stored in the instant area. In the CAL process, first, the return address after the user FB (UFB) process is stored (step S112). Then, the address of the instance area stored in the stack is taken out (step S114), the user FB number of the user FB (UFB) to be called is retrieved from the user FB table (see FIG. 18) described later, Address information is extracted (step S116). The address of the instance area is set as a parameter, and the process jumps to the process of the user FB (UFB) (step S118). After the processing of the user FB (UFB) is completed, after jumping to the return address stored in step S112, the processing of PG1 is continued.

図13と図14における処理の相違点は、システムFBやユーザFBの実体の処理が、PLCのアプリケーション内で実行されるか、システムプログラム内で実行されるかの点にある。
ここまでは、基本的な構成とその処理について説明した。以降は、組み込みソフトウェアにおけるFB(以降、組み込みソフトウェアFBと呼ぶ)の作成方法(図14〜図16参照)や、組み込みソフトウェアFBのプログラマブルコントローラへの展開処理(図17〜図20)に関する具体的な所作について説明する。
図14は、作成対象のPOU(Program Organization Unit)を選択する画面を説明したものであり、この画面は図6のプログラマブルコントローラ支援装置140における図示しない支援ツールにおけるユーザインターフェースの一例である。
このメニュー画面では、従来のプログラム、ファンクションブロック、ファンクションに加えて、組み込みソフトウェアFBの作成を支援することを示している。
図15は、組み込みソフトウェアFBの編集画面の一例を説明したものである。ここでは、ファンクションブロックの名称と、各変数の変数名、データ型、種類を入力する。ファンクションブロック名称は、入力規則に制限は無いが、既に登録済みの名称と重複しないようにする。変数名も入力規則に制限は無いが、同一ファンクションブロック内で重複しないようにする。データ型は、変数の型であるINT型、BOOL型等を指定可能で、ファンクションブロックのインスタンスの構成(図8参照)にも反映される。種類は、INPUT、OUTPUTのいずれかであり、変数がファンクションブロックの入力側、出力側のいずれかであるかを指定することになる。
The difference between the processes in FIG. 13 and FIG. 14 is that the actual process of the system FB and the user FB is executed in the PLC application or in the system program.
Up to this point, the basic configuration and its processing have been described. Hereinafter, specific methods related to a method for creating an FB (hereinafter referred to as an embedded software FB) in embedded software (see FIGS. 14 to 16) and a process for expanding the embedded software FB to a programmable controller (FIGS. 17 to 20). Explain the work.
FIG. 14 illustrates a screen for selecting a POU (Program Organization Unit) to be created. This screen is an example of a user interface in a support tool (not shown) in the programmable controller support device 140 of FIG.
This menu screen indicates that the creation of the embedded software FB is supported in addition to the conventional program, function block, and function.
FIG. 15 illustrates an example of the editing screen of the embedded software FB. Here, the name of the function block and the variable name, data type, and type of each variable are input. The function block name is not limited in input rules, but it should not be duplicated with already registered names. There are no restrictions on the input rules for variable names, but they should not be duplicated in the same function block. As the data type, an INT type, a BOOT type, or the like, which is a variable type, can be specified, and is reflected in the configuration of the function block instance (see FIG. 8). The type is either INPUT or OUTPUT, and specifies whether the variable is on the input side or output side of the function block.

図16は、組み込みソフトウェアFBの雛形の一例を説明したものである。図15で設定した変数を用い、C言語を用いた組み込みソフトウェアの雛形を作成する例を示す。コード240は、構造体の記述方式であり、ファンクションブロックにおいてはインスタンスに相当する。コード242は、構造体からの変数受け渡しと、実際の処理を記入する箇所であり、特に、“/* 以下に処理を記入する */”の箇所以降に演算式や制御内容をユーザがC言語で記載する。なお、ここでは説明の関係で図15で変数等の情報を入力してから図16で雛形を作成する例を示したが、図15の情報より、コード240やコード242の変数などの該当部分を自動的に反映しても構わないし、コード240、242をユーザが直接入力しても構わない。作成したコードを、組み込みソフトウェアの開発環境にてコンパイルし、オブジェクトファイル(組み込みソフトウェアFBのオブジェクトコード)を生成する。
ここまでの処理で、組み込みソフトウェアFBを、システムFB或いはユーザFBとして作成し、これをプログラマブルコントローラに格納する準備は整う。図17、図19ではプログラマブルコントローラのシステムFBとして、組み込みソフトウェアFBを組み込む方法を、図18、図20ではプログラマブルコントローラのユーザFBとして、組み込みソフトウェアFBを組み込む方法を示す。ここでは説明の関係で、システムFB/ユーザFBとしての格納方法を別々に説明するが、これらを併用しても構わない。
FIG. 16 illustrates an example of a template of the embedded software FB. An example in which a template of embedded software using C language is created using the variables set in FIG. The code 240 is a structure description method, and corresponds to an instance in a function block. The code 242 is a place where variables are transferred from the structure and the actual processing is entered, and in particular, the user can input an arithmetic expression and control contents after the portion of “/ * where the processing is entered * /”. It describes in. Here, for the sake of explanation, an example in which information such as variables is input in FIG. 15 and a template is created in FIG. 16 is shown here, but the corresponding parts such as variables of code 240 and code 242 from the information in FIG. May be automatically reflected, or the codes 240 and 242 may be directly input by the user. The created code is compiled in an embedded software development environment, and an object file (object code of embedded software FB) is generated.
With the processing so far, the embedded software FB is created as the system FB or the user FB, and preparations for storing it in the programmable controller are completed. 17 and 19 show a method of incorporating the embedded software FB as the system FB of the programmable controller, and FIGS. 18 and 20 show a method of incorporating the embedded software FB as the user FB of the programmable controller. Here, the storage method as the system FB / user FB will be described separately for the sake of explanation, but these may be used together.

初めに各FBテーブルについて説明する。
図17は、システムFBテーブルの一例を説明したものである。プログラムメモリ上に、システムFBのオブジェクトコード99個と、ユーザの作成した組み込みソフトウェアFB一つとが格納されている。各システムFBのオブジェクトコードには、これらを一意に特定するシステムFB番号が割り振られている。これはプログラマブルコントローラ側で、システムFB番号で指定されたシステムFBを速やかに呼び出せるようにするものである。ここでは、これらのシステムFB番号を管理する方法としてシステムFBテーブルを用いている。
システムFBテーブルは、システムFB番号及びシステムFBのオブジェクトコードの格納先アドレスの一覧で構成される。図17の例では、システムFBテーブルはデータメモリに格納されており、システムFBテーブルの各システムFB番号を指定すればプログラムメモリ内の各オブジェクトコードの開始アドレスを特定できることを、図の各矢印は示している。一例として、システムFB番号が“1”の場合は、システムFBテーブルのシステムFB1に格納されているアドレスを参照し、ここではプログラムメモリの50番地に格納されていることが分かる。
First, each FB table will be described.
FIG. 17 illustrates an example of the system FB table. In the program memory, 99 object codes of the system FB and one embedded software FB created by the user are stored. A system FB number that uniquely identifies these is assigned to the object code of each system FB. This enables the programmable controller to quickly call the system FB designated by the system FB number. Here, a system FB table is used as a method of managing these system FB numbers.
The system FB table includes a list of system FB numbers and storage addresses of object codes of the system FB. In the example of FIG. 17, the system FB table is stored in the data memory, and by specifying each system FB number in the system FB table, it is possible to specify the start address of each object code in the program memory. Show. As an example, when the system FB number is “1”, the address stored in the system FB1 of the system FB table is referred to, and it can be seen here that the system FB number is stored in the address 50 of the program memory.

このシステムFBテーブルは、基本部分と拡張部分から構成され、メーカー指定のシステムFB1〜99(基本部分)は固定で、後続のシステムFB100〜n(拡張部分)に組み込みソフトウェアFBや任意のユーザFBを登録する。図で示したように拡張部分には、登録の有無に応じて空き領域(リザーブ)を用意しても構わない。
なお、アドレスの指定方法は、オブジェクトコードの格納先の開始番地を用いるのが一般的であるが、開始番地・終了番地・オブジェクトコードを格納するアドレス長を指定しても構わない。アドレスの情報は、プログラムメモリ内のアドレスを絶対番地として登録しても構わないし、相対アドレスであっても構わない。
また、システムFBテーブルの構成自体を構造的にして、例えばシステムFBテーブルの頭から4バイト目にはシステムFB番号1のアドレスを、8バイト目にはシステムFB番号2のアドレス、・・・、4nバイト目にはシステムFB番号nのアドレスを格納すれば、単なるアドレスの羅列で構成しても構わない。
ここでは、一例として、システムFBがn個あるものとして、実際にn個格納されているものを想定しているが、管理するシステムFBの個数はデータメモリやプログラムメモリ等の容量が許容すればn個に固定せずとも構わなく、未使用な番号があっても良いし、システムFBが連番である必要は無い。但し、実際に実行するシステムFBに応じて管理するのがメモリ資源やレンスポンスの面から好ましい。
This system FB table is composed of a basic part and an extended part. The system FB1 to 99 (basic part) specified by the manufacturer is fixed, and the embedded software FB and an arbitrary user FB are installed in the subsequent systems FB100 to n (extended part). sign up. As shown in the figure, an empty area (reserve) may be prepared in the extended portion according to the presence or absence of registration.
The address designation method generally uses the start address of the object code storage destination. However, the start address, the end address, and the address length for storing the object code may be designated. The address information may be registered as an absolute address in the program memory or may be a relative address.
Further, the structure of the system FB table itself is structured, for example, the address of the system FB number 1 in the fourth byte from the head of the system FB table, the address of the system FB number 2 in the eighth byte,... If the address of the system FB number n is stored in the 4nth byte, it may be constituted by a simple list of addresses.
Here, as an example, it is assumed that there are n systems FB, and n systems FB are actually stored. However, the number of systems FB to be managed is allowed if the capacity of data memory, program memory, or the like allows. It does not matter if the number is not fixed to n, there may be an unused number, and the system FB need not be a serial number. However, management according to the system FB to be actually executed is preferable in terms of memory resources and response.

いずれにせよ、システムFB番号が分かれば、実行すべきプログラムメモリ内のシステムFBのオブジェクトコードのアドレスも一意に決まる。
図18は、ユーザFBテーブルの一例を説明したもである。基本的には図17のシステムFBテーブルと同様な構造なので、その差異について説明する。ユーザが作成したアプリケーションソフトウェアにおいて、そのコンパイル時に生成されたユーザFB番号をユーザFBテーブルとして用いるので、基本的にはシステムFBのような空き領域は発生しない(必要ない)。また、コンパイル過程の最適化ルーチン等に基づき、ユーザFB番号が発番されるので、組み込みソフトウェアFBの番号がどのような番号になるかは固定されない。図18の場合、ユーザFB番号99に組み込みソフトウェアFBの番号が割り振られたので、その格納箇所はプログラムメモリの300番地となっている。
続いて、プログラマブルコントローラ支援装置とプログラマブルコントローラとにおいて、どのように処理されているかを説明する。
図19は、従来のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(システムFB)の処理を概略フローチャートで説明したものである。ここではプログラマブルコントローラ支援装置側とプログラマブルコントローラ側とにおいて、どのような処理が行われているかを、受け渡しされる情報を中心に示している。
In any case, if the system FB number is known, the address of the object code of the system FB in the program memory to be executed is also uniquely determined.
FIG. 18 illustrates an example of the user FB table. Since the structure is basically the same as the system FB table of FIG. 17, the difference will be described. In the application software created by the user, the user FB number generated at the time of compiling is used as the user FB table, so that basically no free space like the system FB is generated (not necessary). Further, since the user FB number is issued based on the optimization routine of the compilation process, the number of the embedded software FB number is not fixed. In the case of FIG. 18, since the number of the embedded software FB is assigned to the user FB number 99, the storage location is 300 addresses in the program memory.
Next, how processing is performed in the programmable controller support device and the programmable controller will be described.
FIG. 19 is a schematic flowchart for explaining the processing of the embedded software FB (system FB) in the conventional programmable controller system. Here, what kind of processing is performed on the programmable controller support device side and the programmable controller side is shown mainly on the information to be transferred.

図から明らかなように、プログラマブルコントローラ支援装置側では、ユーザが組み込みソフトウェアFBを作成し、それを用いたアプリケーションソフトウェアを開発する処理(フローF10)と、組み込みソフトウェアFBから実行コードを生成する処理(フローF12)とが行われる。一方で、プログラマブルコントローラ側では、組み込みソフトウェアFBを格納する処理(フローF14)とアプリケーションソフトウェアを格納する処理(フローF16)とが行われる。
順を追って説明すると、ユーザはプログラマブルコントローラ支援装置において、支援ツールを用いて、組み込みソフトウェアFBを作成する。一例として先述の図14〜16のようなインターフェースによって、主に組み込みソフトウェアFBの入出力関係を定義する。これにより、組み込みソフトウェアFBの雛形10が生成され、また、この組み込みソフトウェアFBを特定するシステムFB番号14を発番する(ステップS10)。
次に、ユーザは組み込みソフトウェアFBの具体的な処理内容をプログラムする(ステップS20)。結果、支援ツールは組み込みソフトウェアFBのプログラムコードをコンパイルし実行形式の組み込みソフトウェアFBのオブジェクトコード16を生成する(ステップS22)。
As is clear from the figure, on the programmable controller support device side, the user creates embedded software FB, develops application software using the software (flow F10), and generates execution code from the embedded software FB ( Flow F12) is performed. On the other hand, on the programmable controller side, processing for storing the embedded software FB (flow F14) and processing for storing application software (flow F16) are performed.
To explain step by step, the user creates the embedded software FB using a support tool in the programmable controller support apparatus. As an example, the input / output relationship of the embedded software FB is mainly defined by the interfaces as shown in FIGS. As a result, the template 10 of the embedded software FB is generated, and the system FB number 14 that identifies the embedded software FB is issued (step S10).
Next, the user programs specific processing contents of the embedded software FB (step S20). As a result, the support tool compiles the program code of the embedded software FB and generates the object code 16 of the embedded software FB in the execution format (step S22).

すると、支援ツールは、システムFB番号14と組み込みソフトウェアFBのオブジェクトコード16とを、動作対象のプログラマブルコントローラに送信(ダウンロード)する(ステップS12)。
続けてユーザは、組み込みソフトウェアFBを用いたアプリケーションソフトウェアを生成する(ステップS14)。その後、このアプリケーションソフトウェアをコンパイルし実行形式のアプリケーションソフトウェア18を生成する(ステップS16)。そして、このアプリケーションソフトウェア18を動作対象のプログラマブルコントローラに送信(ダウンロード)する(ステップS18)。
プログラマブルコントローラにおいては、システムFB番号14と組み込みソフトウェアFBのオブジェクトコード16とを受信すると、これをプログラムメモリ130の空いている箇所に格納する(ステップS24)。続いて、組み込みソフトウェアFBのオブジェクトコード16に付与されたシステムFB番号14をデータメモリ132のシステムFBテーブルに登録する(ステップS26)。システムFBテーブルに登録する方法の一例は、先述の図17の説明の通りである。
一方で、アプリケーションソフトウェア18を受信すると、これをプログラムメモリ130の空いている箇所にに格納する(ステップS30)。
Then, the support tool transmits (downloads) the system FB number 14 and the object code 16 of the embedded software FB to the programmable controller to be operated (step S12).
Subsequently, the user generates application software using the embedded software FB (step S14). Thereafter, the application software is compiled to generate application software 18 in an executable format (step S16). Then, this application software 18 is transmitted (downloaded) to the programmable controller to be operated (step S18).
When the programmable controller receives the system FB number 14 and the object code 16 of the embedded software FB, it stores them in a vacant part of the program memory 130 (step S24). Subsequently, the system FB number 14 assigned to the object code 16 of the embedded software FB is registered in the system FB table of the data memory 132 (step S26). An example of a method of registering in the system FB table is as described above with reference to FIG.
On the other hand, when the application software 18 is received, it is stored in a vacant part of the program memory 130 (step S30).

このような処理により、プログラマブルコントローラはスタンバイ状態となり、任意のタイミングでアプリケーションソフトウェア18が実行され、その処理の中で組み込みソフトウェアFBのオブジェクトコード16が呼び出され実行される。
図20は、従来のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(ユーザFB)の処理を概略フローチャートで説明したものである。ここでもシステムFBのときと同様に、プログラマブルコントローラ支援装置側とプログラマブルコントローラ側とにおいて、どのような処理が行われているかを、受け渡しされる情報を中心に示している。
図から明らかなように、プログラマブルコントローラ支援装置側では、ユーザが組み込みソフトウェアFBを作成し、それを用いたアプリケーションソフトウェアを開発する処理(フローF20)と、組み込みソフトウェアFBから実行コードを生成する処理(フローF22)とが行われる。一方で、プログラマブルコントローラ側では、組み込みソフトウェアFBを格納する処理(フローF24)とアプリケーションソフトウェアを格納する処理(フローF26)とが行われる。
順を追って説明すると、ユーザはプログラマブルコントローラ支援装置において、支援ツールを用いて、組み込みソフトウェアFBを作成する。一例として先述の図14〜16のようなインターフェースによって、主に組み込みソフトウェアFBの入出力関係を定義する。これにより、組み込みソフトウェアFBの雛形20が生成される(ステップS50)。
By such processing, the programmable controller enters the standby state, and the application software 18 is executed at an arbitrary timing, and the object code 16 of the embedded software FB is called and executed during the processing.
FIG. 20 is a schematic flowchart for explaining the processing of the embedded software FB (user FB) in the conventional programmable controller system. Here too, as in the case of the system FB, what kind of processing is being performed on the programmable controller support device side and the programmable controller side is mainly shown in the transferred information.
As apparent from the figure, on the programmable controller support device side, the user creates the embedded software FB, develops application software using the embedded software FB (flow F20), and generates the execution code from the embedded software FB ( Flow F22) is performed. On the other hand, on the programmable controller side, processing for storing the embedded software FB (flow F24) and processing for storing application software (flow F26) are performed.
To explain step by step, the user creates the embedded software FB using a support tool in the programmable controller support apparatus. As an example, the input / output relationship of the embedded software FB is mainly defined by the interfaces as shown in FIGS. Thereby, the template 20 of the embedded software FB is generated (step S50).

次に、ユーザは組み込みソフトウェアFBの具体的な処理内容をプログラムする(ステップS62)。結果、支援ツールは組み込みソフトウェアFBのプログラムコードをコンパイルし実行形式の組み込みソフトウェアFBのオブジェクトコード26を生成する(ステップS64)。
すると、支援ツールは、組み込みソフトウェアFBのオブジェクトコード26を、動作対象のプログラマブルコントローラに送信(ダウンロード)する(ステップS52)。
続けてユーザは、組み込みソフトウェアFBを用いたアプリケーションソフトウェアを生成する(ステップS54)。その後、このアプリケーションソフトウェアをコンパイルし実行形式のアプリケーションソフトウェア28を生成する(ステップS56)。コンパイルの際に、このアプリケーションソフトウェア28から呼び出す組み込みソフトウェアFBを特定するユーザFB番号30を発番する(ステップS58)。そして、このアプリケーションソフトウェア28とユーザFB番号30とを動作対象のプログラマブルコントローラに送信(ダウンロード)する(ステップS60)。
プログラマブルコントローラにおいては、組み込みソフトウェアFBのオブジェクトコード26とを受信すると、これをプログラムメモリ130の空いている箇所に格納する(ステップS66)。
Next, the user programs specific processing contents of the embedded software FB (step S62). As a result, the support tool compiles the program code of the embedded software FB to generate the object code 26 of the embedded software FB in the executable format (step S64).
Then, the support tool transmits (downloads) the object code 26 of the embedded software FB to the programmable controller to be operated (step S52).
Subsequently, the user generates application software using the embedded software FB (step S54). Thereafter, the application software is compiled to generate application software 28 in an executable format (step S56). At the time of compiling, the user FB number 30 for specifying the embedded software FB to be called from the application software 28 is issued (step S58). Then, the application software 28 and the user FB number 30 are transmitted (downloaded) to the programmable controller to be operated (step S60).
When the programmable controller receives the object code 26 of the embedded software FB, it stores it in a vacant part of the program memory 130 (step S66).

一方で、アプリケーションソフトウェア28とユーザFB番号30とを受信すると、アプリケーションソフトウェア28をプログラムメモリ130の空いている箇所にに格納する(ステップS70)。続いて、組み込みソフトウェアFBのオブジェクトコード26に付与されたユーザFB番号30をデータメモリ132のユーザFBテーブルに登録する(ステップS72)。
このような処理により、プログラマブルコントローラはスタンバイ状態となり、任意のタイミングでアプリケーションソフトウェア28が実行され、その処理の中で組み込みソフトウェアFBのオブジェクトコード26が呼び出され実行される。
以上の図19、20の説明においては、組み込みソフトウェアFBのシステムFB番号/ユーザFB番号について処理を示したが、実際の処理では組み込みソフトウェアFB以外のシステムFB番号/ユーザFB番号についても付与されプログラマブルコントローラに送信(ダウンロード)、反映されている。結果、図17、18のような各FBテーブルが構築・保持される。
特願2007-171535 特願2007-083871
On the other hand, when the application software 28 and the user FB number 30 are received, the application software 28 is stored in a vacant part of the program memory 130 (step S70). Subsequently, the user FB number 30 assigned to the object code 26 of the embedded software FB is registered in the user FB table of the data memory 132 (step S72).
By such processing, the programmable controller enters a standby state, the application software 28 is executed at an arbitrary timing, and the object code 26 of the embedded software FB is called and executed during the processing.
In the description of FIGS. 19 and 20 described above, the processing is shown for the system FB number / user FB number of the embedded software FB. In actual processing, the system FB number / user FB number other than the embedded software FB is also given and programmable. Sent (downloaded) to the controller and reflected. As a result, each FB table as shown in FIGS. 17 and 18 is constructed and held.
Japanese Patent Application 2007-171535 Japanese Patent Application No. 2007-083871

プログラマブルコントローラシステムを導入した後も、現場環境によってはソフトウェアの更新の必要性や顧客のニーズにより細かいメンテナンス事項は日常的に発生する。この際、例えば、組み込みソフトウェアだけを改善し、これを用いるアプリケーションソフトには手を加えない場合がある。一方で、組み込みソフトウェアの拡張に伴いメモリ管理が変わるので、アプリケーションソフトに手を加える場合もある。
いずれの場合も、ソフトウェアの変更量から見ると、部分的な変更の域で、大幅にプログラムに手を加えることは少ない。
ところで、上述の特許文献1、2においては、システムFB、ユーザFBのいずれの場合においても、これらの呼び出しによって組み込みソフトウェアの起動とデータ交換を行っている。ここで交換されるデータは、作成された組み込みソフトウェアのFBのインスタンスメモリ上に存在する。もし、上述のプログラムの変更により誤ったFBを呼び出すと、アクセスするデータのインスタンス内での相対位置やインスタンスのサイズが異なるため、演算が異常終了してしまう恐れがある。
また、アプリケーションソフトから呼び出す組み込みソフトウェアのFBの名称が変わらないため、呼び出し元や呼び出し先に原因があるのか、呼び出し関係に原因があるのか等の原因特定も困難になる。
Even after the introduction of the programmable controller system, depending on the field environment, detailed maintenance items will occur on a daily basis due to the need for software updates and customer needs. At this time, for example, there are cases where only the embedded software is improved, and application software using the embedded software is not modified. On the other hand, memory management changes with the expansion of embedded software, so application software may be modified.
In either case, from the viewpoint of the amount of software change, the program is rarely changed in the area of partial change.
By the way, in the above-mentioned Patent Documents 1 and 2, in any case of the system FB and the user FB, activation of embedded software and data exchange are performed by these calls. The data exchanged here exists in the instance memory of the created embedded software FB. If an incorrect FB is called due to the above-described program change, the relative position in the instance of the data to be accessed and the size of the instance are different, so that the calculation may end abnormally.
In addition, since the name of the FB of the embedded software that is called from the application software does not change, it is difficult to identify the cause such as whether there is a cause in the call source or the call destination or in the call relationship.

このように、上述の特許文献1、2においては、FB番号だけに管理体系が依存しているので、このようなプログラム変更に対応できない問題が発生する。
本発明は、このような問題点を鑑み、ユーザが作成した組み込みソフトウェアと、これらを呼び出すアプリケーションソフトウェアとにおける動作を保証したプログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステムを提供することを目的とする。
As described above, in the above-described Patent Documents 1 and 2, since the management system depends only on the FB number, there arises a problem that cannot cope with such program change.
In view of such problems, the present invention has an object to provide a programmable controller, a programmable controller support device, and a programmable controller system that guarantee operations in embedded software created by a user and application software that calls them. To do.

上記の課題を解決する手段として、本発明は以下のように構成する。
第1に、本発明のプログラマブルコントローラは、組み込みソフトウェアのファンクションブロックのオブジェクトコードと該オブジェクトコードに付与されている第1の付加情報とを格納する第1の記憶手段と、前記組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトと該アプリケーションソフトに付与されている第2の付加情報とを格納する第2の記憶手段と、前記第1、2の記憶手段に格納された情報を解釈し実行する実行手段とを備え、前記実行手段は、前記アプリケーションソフトを実行する際に、該アプリケーションソフトに前記組み込みソフトウェアのファンクションブロックの呼び出し処理があるときは、前記第1の付加情報と前記第2の付加情報とを比較し、相違が無い場合に処理を継続するように構成する。
第2に、前記プログラマブルコントローラにおいて、前記第1の付加情報及び前記第2の付加情報は、前記組み込みソフトウェアのファンクションブロックのインスタンスフォーマット情報であるように構成する。
第3に、前記プログラマブルコントローラにおいて、前記第1の付加情報及び前記第2の付加情報は、版数情報、或いは前記組み込みソフトウェアのファンクションブロックを特定可能なタイムスタンプ情報であるように構成する。
As means for solving the above problems, the present invention is configured as follows.
First, a programmable controller according to the present invention includes a first storage means for storing an object code of a function block of embedded software and first additional information given to the object code, and a function block of the embedded software. Second storage means for storing application software using the software and second additional information given to the application software, and execution means for interpreting and executing the information stored in the first and second storage means The execution means includes the first additional information and the second additional information when the application software has a function block calling process of the embedded software when the application software is executed. And continue processing if there is no difference Configured to.
Second, in the programmable controller, the first additional information and the second additional information are configured to be instance format information of a function block of the embedded software.
Thirdly, in the programmable controller, the first additional information and the second additional information are configured so as to be version number information or time stamp information capable of specifying a function block of the embedded software.

第4に、本発明のプログラマブルコントローラ支援装置は、組み込みソフトウェアのファンクションブロックをプログラミングする第1のプログラミング手段と、該組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトをプログラミングする第2のプログラミング手段と、前記ファンクションブロック及び前記アプリケーションソフトをコンパイルするコンパイル手段と、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、該オブジェクトコードを特定する第1の付加情報とを送信する第1の送信手段と、前記アプリケーションソフトと、該アプリケーションソフトに含まれる前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを特定する第2の付加情報とを送信する第2の送信手段とを備えるように構成する。
第5に、前記プログラマブルコントローラ支援装置において、前記第1の付加情報及び前記第2の付加情報は、前記組み込みソフトウェアのファンクションブロックのインスタンスフォーマット情報であることを特徴とするプログラマブルコントローラ支援装置。
第6に、前記プログラマブルコントローラ支援装置において、前記第1の付加情報及び前記第2の付加情報は、版数情報、或いは前記組み込みソフトウェアのファンクションブロックを特定可能なタイムスタンプ情報であることを特徴とするプログラマブルコントローラ支援装置。
Fourth, the programmable controller support device of the present invention includes a first programming means for programming a function block of embedded software, a second programming means for programming application software using the function block of the embedded software, Compile means for compiling the function block and the application software, first transmission means for transmitting the object code of the function block of the embedded software, and first additional information for specifying the object code, the application software, And second additional information for specifying an object code of a function block of the embedded software included in the application software. Configured to include a second transmission means for signals.
Fifth, in the programmable controller support device, the first additional information and the second additional information are instance format information of a function block of the embedded software.
Sixth, in the programmable controller support device, the first additional information and the second additional information are version number information or time stamp information that can specify a function block of the embedded software. Programmable controller support device.

第7に、プログラマブルコントローラとプログラマブルコントローラ支援装置とを具備するプログラマブルコントローラシステムにおいて、前記プログラマブルコントローラ支援装置は、組み込みソフトウェアのファンクションブロックをプログラミングする第1のプログラミング手段と、該組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトをプログラミングする第2のプログラミング手段と、前記ファンクションブロック及び前記アプリケーションソフトをコンパイルするコンパイル手段と、前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、該オブジェクトコードを特定する第1の付加情報とを送信する第1の送信手段と、前記アプリケーションソフトと、該アプリケーションソフトに含まれる前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを特定する第2の付加情報とを送信する第2の送信手段とを備え、前記プログラマブルコントローラは、前記第1の送信手段により送信されてきた前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと該オブジェクトコードに付与されている前記第1の付加情報とを格納する第1の記憶手段と、前記第2の送信手段により送信されてきた前記組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトと該アプリケーションソフトに付与されている前記第2の付加情報とを格納する第2の記憶手段と、前記第1、2の記憶手段に格納された情報を解釈し実行する実行手段を備え、前記実行手段は、前記アプリケーションを実行する際に、該アプリケーションに前記組み込みソフトウェアのファンクションブロックの呼び出し処理があるときは、前記第1の付加情報と前記第2の付加情報と比較し、相違が無い場合に処理を継続するように構成する。   Seventh, in a programmable controller system comprising a programmable controller and a programmable controller support device, the programmable controller support device uses a first programming means for programming a function block of the embedded software and the function block of the embedded software. Second programming means for programming the application software, compiling means for compiling the function block and the application software, object code of the function block of the embedded software, and first additional information for specifying the object code; First transmission means for transmitting the application software, the application software, and the application Second transmission means for transmitting second additional information for specifying the object code of the function block of the embedded software included in the software, and the programmable controller has been transmitted by the first transmission means The first storage means for storing the object code of the function block of the embedded software and the first additional information given to the object code, and the embedded software transmitted by the second transmission means Second storage means for storing the application software using the function block and the second additional information given to the application software; and interpreting and executing the information stored in the first and second storage means Executing means, wherein the executing means When executing the application, if the application has a function block calling process of the embedded software, the first additional information is compared with the second additional information, and the process is continued if there is no difference. Configure as follows.

本発明により、ユーザが作成した組み込みソフトウェアと、これらを呼び出すアプリケーションソフトウェアとの整合性を、プログラマブルコントローラにて確認してから実行するので、動作の保証が確保されるという効果を奏する。
また、確認の元となるインスタンスフォーマット情報を簡略化することにより、ユーザやシステムへの負担(負荷)を軽減することも可能である。
According to the present invention, since the consistency between the embedded software created by the user and the application software that calls them is checked by the programmable controller, the operation is guaranteed.
Also, by simplifying the instance format information that is the source of confirmation, it is possible to reduce the burden (load) on the user and the system.

以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
図1は、本発明のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(システムFB)の処理を概略フローチャートで示したものである。また、図2は、本発明のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(ユーザFB)の処理を概略フローチャートで示したものである。それぞれ、図19、図20で示した従来例と対応する部分は同一の符号を用いるものとする。以降、同符号の説明は省略し、本発明の特徴点について説明する。
図1において、ユーザはプログラマブルコントローラ支援装置における支援ツールを用いて、組み込みソフトウェアFBを作成する。この際に、組み込みソフトウェアFBの雛形10、システムFB番号14の発番処理に加えて、後述のインスタンスフォーマット情報12(図3参照)を生成する(ステップS10a)。このインスタンスフォーマット情報12は、システムFB番号14と組み込みソフトウェアFBのオブジェクトコード16とを、動作対象のプログラマブルコントローラに送信(ダウンロード)する際に、同じくプログラマブルコントローラに送信される(ステップS12a)。また、アプリケーションソフトウェア18を動作対象のプログラマブルコントローラに送信(ダウンロード)する際にも、このインスタンスフォーマット情報12は、プログラマブルコントローラに送信される(ステップS18a)。
The best mode for carrying out the present invention will be described below with reference to the drawings.
FIG. 1 is a schematic flowchart showing processing of the embedded software FB (system FB) in the programmable controller system of the present invention. FIG. 2 is a schematic flowchart showing the processing of the embedded software FB (user FB) in the programmable controller system of the present invention. The parts corresponding to those of the conventional example shown in FIGS. 19 and 20 are denoted by the same reference numerals. Hereinafter, the description of the same reference numerals will be omitted, and the features of the present invention will be described.
In FIG. 1, the user creates the embedded software FB using the support tool in the programmable controller support device. At this time, in addition to the numbering process of the embedded software FB template 10 and the system FB number 14, instance format information 12 (see FIG. 3) described later is generated (step S10a). The instance format information 12 is also transmitted to the programmable controller when the system FB number 14 and the object code 16 of the embedded software FB are transmitted (downloaded) to the operation target programmable controller (step S12a). Also, when the application software 18 is transmitted (downloaded) to the programmable controller to be operated, the instance format information 12 is transmitted to the programmable controller (step S18a).

一方で、プログラマブルコントローラにおいては、システムFB番号14と組み込みソフトウェアFBのオブジェクトコード16及びインスタンスフォーマット情報12を受信すると、ステップS24、ステップS26の処理に続いて、受信したインスタンスフォーマット情報12を、組み込みソフトウェアFBに対応付けて格納する。例えば、データメモリ132の空いている箇所にインスタンスフォーマット情報12を格納し、このインスタンスフォーマット情報12のインデックス情報としてシステムFB番号14を登録する。このことにより、組み込みソフトウェアFBが指定されれば、対応するインスタンスフォーマット情報12の閲覧が可能となる(ステップS28)。
また、アプリケーションソフトウェア18及びインスタンスフォーマット情報12を受信すると、ステップS30の処理に続いて、受信したインスタンスフォーマット情報12を、アプリケーションソフトウェア18に対応付けて格納する。例えば、データメモリ132の空いている箇所にインスタンスフォーマット情報12を格納し、このインスタンスフォーマット情報12のインデックス情報として、このアプリケーションソフトウェア18を特定する情報を登録する。このことにより、アプリケーションソフトウェア18が指定されれば、対応するインスタンスフォーマット情報12の閲覧が可能となる(ステップS32)。
On the other hand, in the programmable controller, when the system FB number 14, the object code 16 of the embedded software FB, and the instance format information 12 are received, the received instance format information 12 is converted into the embedded software following the processing of step S24 and step S26. Store in association with the FB. For example, the instance format information 12 is stored in an empty part of the data memory 132, and the system FB number 14 is registered as index information of the instance format information 12. Thus, if the embedded software FB is designated, the corresponding instance format information 12 can be browsed (step S28).
When the application software 18 and the instance format information 12 are received, the received instance format information 12 is stored in association with the application software 18 following the process of step S30. For example, the instance format information 12 is stored in a vacant part of the data memory 132, and information specifying the application software 18 is registered as index information of the instance format information 12. Thus, if the application software 18 is designated, the corresponding instance format information 12 can be browsed (step S32).

このような処理により、プログラマブルコントローラはスタンバイ状態となり、任意のタイミングでアプリケーションソフトウェア18が実行され(ステップS34)、その処理の中で組み込みソフトウェアFBのオブジェクトコード16が呼び出されるタイミングで、メモリに格納されている“組み込みソフトウェアFBに対応するインスタンスフォーマット情報12”と“アプリケーションソフトウェア18に対応するインスタンスフォーマット情報12”とを比較する。そして、内容が一致すれば処理を継続し、内容が異なる場合は異常等のメッセージをユーザに提示し、処理を終了する(ステップS36)。
図2において、ユーザはプログラマブルコントローラ支援装置における支援ツールを用いて、組み込みソフトウェアFBを作成する。この際に、組み込みソフトウェアFBの雛形20の生成に加えて、インスタンスフォーマット情報22(図3参照)を生成する(ステップS50a)。このインスタンスフォーマット情報22は、組み込みソフトウェアFBのオブジェクトコード26を、動作対象のプログラマブルコントローラに送信(ダウンロード)する際に、同じくプログラマブルコントローラに送信される(ステップS52a)。また、アプリケーションソフトウェア28とユーザFB番号30とを動作対象のプログラマブルコントローラに送信(ダウンロード)する際にも、このインスタンスフォーマット情報22は、プログラマブルコントローラに送信される(ステップS60a)。
By such processing, the programmable controller enters the standby state, and the application software 18 is executed at an arbitrary timing (step S34), and stored in the memory at the timing when the object code 16 of the embedded software FB is called during the processing. The “instance format information 12 corresponding to the embedded software FB” and the “instance format information 12 corresponding to the application software 18” are compared. If the contents match, the process is continued. If the contents are different, a message such as abnormality is presented to the user, and the process ends (step S36).
In FIG. 2, the user creates the embedded software FB using the support tool in the programmable controller support device. At this time, in addition to the generation of the template 20 of the embedded software FB, the instance format information 22 (see FIG. 3) is generated (step S50a). This instance format information 22 is also transmitted to the programmable controller when the object code 26 of the embedded software FB is transmitted (downloaded) to the programmable controller to be operated (step S52a). Also, when the application software 28 and the user FB number 30 are transmitted (downloaded) to the operation target programmable controller, the instance format information 22 is also transmitted to the programmable controller (step S60a).

一方で、プログラマブルコントローラにおいては、組み込みソフトウェアFBのオブジェクトコード26を受信すると、ステップS66の処理に続いて、受信したインスタンスフォーマット情報22を、組み込みソフトウェアFBに対応付けて格納する。例えば、データメモリ132の空いている箇所にインスタンスフォーマット情報22を格納し、このインスタンスフォーマット情報22に、組み込みソフトウェアFBを特定する情報を登録する。このことにより、組み込みソフトウェアFBが指定されれば、対応するインスタンスフォーマット情報22の閲覧が可能となる(ステップS68)。
また、アプリケーションソフトウェア28とユーザFB番号30、及びインスタンスフォーマット情報22を受信すると、ステップS70、ステップS72の処理に続いて、受信したインスタンスフォーマット情報22を、アプリケーションソフトウェア28に対応付けて格納する。例えば、データメモリ132の空いている箇所にインスタンスフォーマット情報22を格納し、このインスタンスフォーマット情報22のインデックス情報として、このアプリケーションソフトウェア28を特定する情報を登録する。このことにより、アプリケーションソフトウェア28が指定されれば、対応するインスタンスフォーマット情報22の閲覧が可能となる(ステップS74)。
On the other hand, when the programmable controller receives the object code 26 of the embedded software FB, the received instance format information 22 is stored in association with the embedded software FB following the process of step S66. For example, the instance format information 22 is stored in an empty part of the data memory 132, and information for specifying the embedded software FB is registered in the instance format information 22. Thus, if the embedded software FB is designated, the corresponding instance format information 22 can be browsed (step S68).
When the application software 28, the user FB number 30, and the instance format information 22 are received, the received instance format information 22 is stored in association with the application software 28 following the processing of step S70 and step S72. For example, the instance format information 22 is stored in a vacant part of the data memory 132, and information specifying the application software 28 is registered as index information of the instance format information 22. Thus, when the application software 28 is designated, the corresponding instance format information 22 can be browsed (step S74).

このような処理により、プログラマブルコントローラはスタンバイ状態となり、任意のタイミングでアプリケーションソフトウェア28が実行され(ステップS76)、その処理の中で組み込みソフトウェアFBのオブジェクトコード26が呼び出されるタイミングで、メモリに格納されている“組み込みソフトウェアFBに対応するインスタンスフォーマット情報22”と“アプリケーションソフトウェア28に対応するインスタンスフォーマット情報22”とを比較する。そして、内容が一致すれば処理を継続し、内容が異なる場合は異常等のメッセージをユーザに提示し、処理を終了する(ステップS78)。
図3は、インスタンスフォーマット情報の一例を示したものである。ここでは、簡単な例として、インスタンス変数の属性情報とサイズ情報との一覧を用いる。属性情報とは、VAR、VAR_INPUT、VAR_OUTPUTを指し入力や出力の情報を意味する。サイズ情報とは、BOOL、INTを指しデータ型によるメモリ占有サイズを指す(図8参照)。プログラマブルコントローラ支援装置の支援ツールで組み込みソフトウェアFBを作成中に、組み込みソフトウェアFBの変数構造より機械的に抽出可能なので、ユーザがこれらを意識的に用意する必要は無い。
インスタンスフォーマット情報の別の例として、例えば組み込みソフトウェアFBを作成時間(タイムスタンプ)を用いても構わない。或いは、ユーザが版数情報を直接用意し、入力しても構わない。このような簡易情報で代替えする事により、ステップS36、S78のプログラマブルコントローラにおける比較の処理時間軽減を優先しても構わない。
By such processing, the programmable controller enters the standby state, and the application software 28 is executed at an arbitrary timing (step S76), and stored in the memory at the timing when the object code 26 of the embedded software FB is called during the processing. The “instance format information 22 corresponding to the embedded software FB” and the “instance format information 22 corresponding to the application software 28” are compared. If the contents match, the process is continued. If the contents are different, a message such as abnormality is presented to the user, and the process ends (step S78).
FIG. 3 shows an example of the instance format information. Here, as a simple example, a list of attribute information and size information of instance variables is used. The attribute information indicates VAR, VAR_INPUT, and VAR_OUTPUT and means input or output information. The size information indicates OOL and INT, and indicates the memory occupation size according to the data type (see FIG. 8). Since the embedded software FB can be extracted mechanically from the variable structure of the embedded software FB during the generation of the embedded software FB using the support tool of the programmable controller support device, it is not necessary for the user to consciously prepare them.
As another example of the instance format information, for example, the creation time (time stamp) of the embedded software FB may be used. Alternatively, the user may directly prepare and input version number information. By substituting with such simple information, priority may be given to the reduction of the processing time of the comparison in the programmable controller in steps S36 and S78.

また、図1、2の説明ではインスタンスフォーマット情報をプログラムメモリ130に保存する方法を示したが、組み込みソフトウェアFBのオブジェクトコード16、26、アプリケーションソフトウェア18、28に直接埋め込む方式を用いても構わない。
以上、説明した構成を用いる事により、ユーザによる組み込みソフトウェアFBを汎用コントローラにおいて使用させつつ、アプリケーションソフトからの呼び出し時の異常等を回避することが可能となる。
In the description of FIGS. 1 and 2, the method of saving the instance format information in the program memory 130 has been described. However, a method of directly embedding in the object code 16 and 26 and the application software 18 and 28 of the embedded software FB may be used. .
As described above, by using the configuration described above, it is possible to avoid abnormality or the like when calling from the application software while using the embedded software FB by the user in the general-purpose controller.

本発明のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(システムFB)の処理フローチャートProcessing flowchart of embedded software FB (system FB) in programmable controller system of the present invention 本発明のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(ユーザFB)の処理フローチャートProcessing flowchart of embedded software FB (user FB) in programmable controller system of the present invention インスタンスフォーマット情報の一例を示す説明図Explanatory drawing showing an example of instance format information プログラマブルコントローラシステムの構成の一例を示す説明図Explanatory drawing which shows an example of a structure of a programmable controller system プログラマブルコントローラの概略ハード構成を示す説明図Explanatory diagram showing the schematic hardware configuration of the programmable controller プログラマブルコントローラ支援装置の概略ハード構成を示す説明図Explanatory drawing which shows schematic hardware structure of a programmable controller assistance apparatus ファンクションブロックの入出力概略の一例を示す説明図Explanatory drawing showing an example of input / output outline of function block ファンクションブロックのインスタンスの構成の一例を示す説明図An explanatory diagram showing an example of the configuration of an instance of a function block FBを呼び出すプログラムの一例を示す説明図Explanatory drawing which shows an example of the program which calls FB 図9(a)で示すプログラム(PG0)の擬似的なプログラムコードを示す説明図Explanatory drawing which shows the pseudo program code of the program (PG0) shown to Fig.9 (a) 図9(b)で示すプログラム(PG1)の擬似的なプログラムコードを示す説明図Explanatory drawing which shows the pseudo program code of the program (PG1) shown in FIG.9 (b). システムFBの処理の一例を示す概略フローチャートOutline flowchart showing an example of processing of system FB ユーザFBの処理の一例を示す概略フローチャートSchematic flowchart showing an example of processing of user FB 支援ツールのPOU選択画面を示す説明図Explanatory drawing showing the POU selection screen of the support tool 組み込みソフトウェアFBの編集画面の一例を示した説明図An explanatory diagram showing an example of the editing screen of the embedded software FB 組み込みソフトウェアFBの雛形の一例を示した説明図An explanatory diagram showing an example of the template of the embedded software FB システムFBテーブルの一例を示す説明図Explanatory drawing which shows an example of a system FB table ユーザFBテーブルの一例を示す説明図Explanatory drawing which shows an example of a user FB table 従来のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(システムFB)の処理フローチャートProcessing flowchart of embedded software FB (system FB) in a conventional programmable controller system 従来のプログラマブルコントローラシステムにおける組み込みソフトウェアFB(ユーザFB)の処理フローチャートProcessing flowchart of embedded software FB (user FB) in a conventional programmable controller system

符号の説明Explanation of symbols

10、20…組み込みソフトウェアFBの雛形
12、22…インスタンスフォーマット情報
14…組み込みソフトウェアFBのシステムFB番号
16、26…組み込みソフトウェアFBのオブジェクトコード
18、28…アプリケーションソフトウェア
30…組み込みソフトウェアFBのユーザFB番号
100…パソコン
102、104、106、120…プログラマブルコントローラ
108…入出力モジュール
110…ケーブル
112…制御用ネットワーク
122…ドライバ/レシーバ
124…CPU
126…バスコントローラ
128…フラッシュメモリ
130…プログラムメモリ
132…データメモリ
134…内部バス
140…プログラマブルコントローラ支援装置
142…CPU
144…通信I/F
146…入力デバイス
148…表示デバイス
150…記憶装置
152…内部バス
160、170…ファンクションブロック本体
162、172…入力端子
164、174…出力端子
180、190…インスタンス
182、184、192、194…変数
200〜210、220〜230、240〜242…コード
10, 20 ... Embedded software FB template 12, 22 ... Instance format information 14 ... Embedded software FB system FB number 16, 26 ... Embedded software FB object code 18, 28 ... Application software 30 ... Embedded software FB user FB number DESCRIPTION OF SYMBOLS 100 ... Personal computer 102, 104, 106, 120 ... Programmable controller 108 ... Input / output module 110 ... Cable 112 ... Control network 122 ... Driver / receiver 124 ... CPU
DESCRIPTION OF SYMBOLS 126 ... Bus controller 128 ... Flash memory 130 ... Program memory 132 ... Data memory 134 ... Internal bus 140 ... Programmable controller support apparatus 142 ... CPU
144 ... Communication I / F
146: Input device 148: Display device 150 ... Storage device 152 ... Internal bus 160, 170 ... Function block main body 162, 172 ... Input terminal 164, 174 ... Output terminal 180, 190 ... Instance 182, 184, 192, 194 ... Variable 200 ~ 210, 220 ~ 230, 240 ~ 242 ... code

Claims (7)

組み込みソフトウェアのファンクションブロックのオブジェクトコードと該オブジェクトコードに付与されている第1の付加情報とを格納する第1の記憶手段と、
前記組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトと該アプリケーションソフトに付与されている第2の付加情報とを格納する第2の記憶手段と、
前記第1、2の記憶手段に格納された情報を解釈し実行する実行手段とを備え、
前記実行手段は、前記アプリケーションソフトを実行する際に、該アプリケーションソフトに前記組み込みソフトウェアのファンクションブロックの呼び出し処理があるときは、前記第1の付加情報と前記第2の付加情報とを比較し、相違が無い場合に処理を継続することを特徴とするプログラマブルコントローラ。
First storage means for storing an object code of a function block of embedded software and first additional information given to the object code;
Second storage means for storing application software using the function block of the embedded software and second additional information given to the application software;
Execution means for interpreting and executing the information stored in the first and second storage means,
The execution means, when executing the application software, if the application software has a function block call process of the embedded software, compares the first additional information and the second additional information, A programmable controller characterized in that the processing is continued when there is no difference.
請求項1に記載のプログラマブルコントローラにおいて、
前記第1の付加情報及び前記第2の付加情報は、前記組み込みソフトウェアのファンクションブロックのインスタンスフォーマット情報であることを特徴とするプログラマブルコントローラ。
The programmable controller according to claim 1,
The programmable controller, wherein the first additional information and the second additional information are instance format information of a function block of the embedded software.
請求項1に記載のプログラマブルコントローラにおいて、
前記第1の付加情報及び前記第2の付加情報は、版数情報、或いは前記組み込みソフトウェアのファンクションブロックを特定可能なタイムスタンプ情報であることを特徴とするプログラマブルコントローラ。
The programmable controller according to claim 1,
The programmable controller, wherein the first additional information and the second additional information are version number information or time stamp information that can specify a function block of the embedded software.
組み込みソフトウェアのファンクションブロックをプログラミングする第1のプログラミング手段と、
該組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトをプログラミングする第2のプログラミング手段と、
前記ファンクションブロック及び前記アプリケーションソフトをコンパイルするコンパイル手段と、
前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、該オブジェクトコードを特定する第1の付加情報とを送信する第1の送信手段と、
前記アプリケーションソフトと、該アプリケーションソフトに含まれる前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを特定する第2の付加情報とを送信する第2の送信手段とを備えることを特徴とするプログラマブルコントローラ支援装置。
A first programming means for programming function blocks of the embedded software;
A second programming means for programming application software using the function block of the embedded software;
Compiling means for compiling the function block and the application software;
First transmission means for transmitting an object code of a function block of the embedded software and first additional information for specifying the object code;
A programmable controller support device comprising: the application software; and second transmission means for transmitting second additional information for specifying an object code of a function block of the embedded software included in the application software.
請求項4に記載のプログラマブルコントローラ支援装置において、
前記第1の付加情報及び前記第2の付加情報は、前記組み込みソフトウェアのファンクションブロックのインスタンスフォーマット情報であることを特徴とするプログラマブルコントローラ支援装置。
The programmable controller support device according to claim 4,
The programmable controller support apparatus, wherein the first additional information and the second additional information are function block instance format information of the embedded software.
請求項4に記載のプログラマブルコントローラ支援装置において、
前記第1の付加情報及び前記第2の付加情報は、版数情報、或いは前記組み込みソフトウェアのファンクションブロックを特定可能なタイムスタンプ情報であることを特徴とするプログラマブルコントローラ支援装置。
The programmable controller support device according to claim 4,
The programmable controller support apparatus, wherein the first additional information and the second additional information are version number information or time stamp information that can specify a function block of the embedded software.
プログラマブルコントローラとプログラマブルコントローラ支援装置とを具備するプログラマブルコントローラシステムにおいて、
前記プログラマブルコントローラ支援装置は、
組み込みソフトウェアのファンクションブロックをプログラミングする第1のプログラミング手段と、
該組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトをプログラミングする第2のプログラミング手段と、
前記ファンクションブロック及び前記アプリケーションソフトをコンパイルするコンパイル手段と、
前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと、該オブジェクトコードを特定する第1の付加情報とを送信する第1の送信手段と、
前記アプリケーションソフトと、該アプリケーションソフトに含まれる前記組み込みソフトウェアのファンクションブロックのオブジェクトコードを特定する第2の付加情報とを送信する第2の送信手段とを備え、
前記プログラマブルコントローラは、
前記第1の送信手段により送信されてきた前記組み込みソフトウェアのファンクションブロックのオブジェクトコードと該オブジェクトコードに付与されている前記第1の付加情報とを格納する第1の記憶手段と、
前記第2の送信手段により送信されてきた前記組み込みソフトウェアのファンクションブロックを用いたアプリケーションソフトと該アプリケーションソフトに付与されている前記第2の付加情報とを格納する第2の記憶手段と、
前記第1、2の記憶手段に格納された情報を解釈し実行する実行手段を備え、
前記実行手段は、前記アプリケーションを実行する際に、該アプリケーションに前記組み込みソフトウェアのファンクションブロックの呼び出し処理があるときは、前記第1の付加情報と前記第2の付加情報と比較し、相違が無い場合に処理を継続することを特徴とするプログラマブルコントローラシステム。
In a programmable controller system comprising a programmable controller and a programmable controller support device,
The programmable controller support device is
A first programming means for programming function blocks of the embedded software;
A second programming means for programming application software using the function block of the embedded software;
Compiling means for compiling the function block and the application software;
First transmission means for transmitting an object code of a function block of the embedded software and first additional information for specifying the object code;
Second transmission means for transmitting the application software and second additional information for specifying an object code of a function block of the embedded software included in the application software;
The programmable controller is:
First storage means for storing an object code of the function block of the embedded software transmitted by the first transmission means and the first additional information given to the object code;
Second storage means for storing application software using function blocks of the embedded software transmitted by the second transmission means and the second additional information given to the application software;
An execution means for interpreting and executing the information stored in the first and second storage means;
When executing the application, the execution means compares the first additional information with the second additional information when the application has a function block calling process of the embedded software, and there is no difference. A programmable controller system characterized in that the processing is continued in some cases.
JP2008091393A 2008-03-31 2008-03-31 Programmable controller, programmable controller support apparatus, and programmable controller system Withdrawn JP2009245194A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008091393A JP2009245194A (en) 2008-03-31 2008-03-31 Programmable controller, programmable controller support apparatus, and programmable controller system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008091393A JP2009245194A (en) 2008-03-31 2008-03-31 Programmable controller, programmable controller support apparatus, and programmable controller system

Publications (1)

Publication Number Publication Date
JP2009245194A true JP2009245194A (en) 2009-10-22

Family

ID=41306999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008091393A Withdrawn JP2009245194A (en) 2008-03-31 2008-03-31 Programmable controller, programmable controller support apparatus, and programmable controller system

Country Status (1)

Country Link
JP (1) JP2009245194A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101074966B1 (en) 2010-03-31 2011-10-18 성균관대학교산학협력단 Framework system for developing control program based on iec 61131-3 and method using the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022560A (en) * 1999-07-05 2001-01-26 Toyo Commun Equip Co Ltd Method for revising library function
JP2001051704A (en) * 1999-08-06 2001-02-23 Omron Corp Programmable controller
JP2002268928A (en) * 2001-03-14 2002-09-20 Toshiba Corp Method for checking version of executable file and library file
JP2007102384A (en) * 2005-09-30 2007-04-19 Omron Corp Debugging device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022560A (en) * 1999-07-05 2001-01-26 Toyo Commun Equip Co Ltd Method for revising library function
JP2001051704A (en) * 1999-08-06 2001-02-23 Omron Corp Programmable controller
JP2002268928A (en) * 2001-03-14 2002-09-20 Toshiba Corp Method for checking version of executable file and library file
JP2007102384A (en) * 2005-09-30 2007-04-19 Omron Corp Debugging device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101074966B1 (en) 2010-03-31 2011-10-18 성균관대학교산학협력단 Framework system for developing control program based on iec 61131-3 and method using the same

Similar Documents

Publication Publication Date Title
EP1351108B1 (en) Method and apparatus for programming
US6826432B2 (en) Process for programming an automation application
US6725288B2 (en) System for transmitting data between a device data area and a variable data area of a memory according to a memory map based on an identifying data of a device detected
EP2733613A2 (en) Controller and program
JP4821717B2 (en) Programmable controller, programmable controller support apparatus, and programmable controller system
CN111052010B (en) Control system, development assistance device, and storage medium
CN110806891B (en) Method and device for generating software version of embedded device
JP2004280299A (en) Controller, developing device and system
JPH03229352A (en) Program changing method
JP2009245194A (en) Programmable controller, programmable controller support apparatus, and programmable controller system
JP4877257B2 (en) Programmable controller, programmable controller support apparatus, and programmable controller system
JP2005141435A (en) Tool
JP5205988B2 (en) PLC global variable definition method
CN117136342A (en) Development support device, control method for development support device, information processing program, and recording medium
KR101085114B1 (en) System for providing programable logic controller software development environment
JP2010282286A (en) Development support device, and program
JP6115063B2 (en) Peripheral device of programmable controller
JP3939518B2 (en) Input / output address setting device, input / output address setting program and recording medium recording the same
JP2006285473A (en) Manufacturing process management system
JP3781112B2 (en) Programmable controller system
JP4747990B2 (en) Programmable controller
US20070113236A1 (en) Program flow method and method for expanding a program component system
JP3512685B2 (en) SCREEN DATA CREATION METHOD, SCREEN DATA CREATION DEVICE, AND RECORDING MEDIUM CONTAINING THE PROGRAM
JP7499966B2 (en) Control device and address management method
JP3497423B2 (en) Display device for control, control system, and recording medium on which program is recorded

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20101015

A711 Notification of change in applicant

Effective date: 20110422

Free format text: JAPANESE INTERMEDIATE CODE: A712

A977 Report on retrieval

Effective date: 20111118

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20120120