JP6591116B1 - プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ - Google Patents

プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ Download PDF

Info

Publication number
JP6591116B1
JP6591116B1 JP2019502024A JP2019502024A JP6591116B1 JP 6591116 B1 JP6591116 B1 JP 6591116B1 JP 2019502024 A JP2019502024 A JP 2019502024A JP 2019502024 A JP2019502024 A JP 2019502024A JP 6591116 B1 JP6591116 B1 JP 6591116B1
Authority
JP
Japan
Prior art keywords
instruction
programmable logic
microprocessor
arithmetic
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019502024A
Other languages
English (en)
Other versions
JPWO2019171501A1 (ja
Inventor
夏実 石黒
夏実 石黒
伴彰 ▲高▼木
伴彰 ▲高▼木
潤 仲川
潤 仲川
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6591116B1 publication Critical patent/JP6591116B1/ja
Publication of JPWO2019171501A1 publication Critical patent/JPWO2019171501A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts

Abstract

CPUユニット(100)は、演算装置として、命令を処理するMPU(142)及びFPGA(143)とを有する。命令は、命令を処理する演算装置としてユーザが選択した演算装置を示す演算装置情報を含む。MPU(142)は、演算装置情報がMPU(142)を示す場合、命令を処理する。FPGA(143)は、演算装置情報がFPGA(143)を示す場合、命令を処理する。演算装置情報が変更されると、変更後の演算装置情報に基づいて、MPU(142)またはFPGA(143)が命令を処理する。

Description

本発明は、プログラマブルロジックコントローラのCPUユニット、プログラマブルロジックコントローラ、方法、及びコンピューに関する。
ファクトリーオートメーションの分野で使用されているプログラマブルロジックコントローラ(Programmable Logic Controller: PLC)において、CPU(Central Processing Unit)ユニットは、特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)と、汎用的な処理を行うマイクロプロセッサ(Microprocessor: MPU)とを備える。ASICは、設計時に決められた特定の処理を実行し、マイクロプロセッサは、ASICが設計上処理することができない処理を実行する。マイクロプロセッサの演算性能は、ASICほど高くないため、マイクロプロセッサの処理能力が、CPUユニットの動作の高速化の難点となっていた。
ASICにすべての命令を処理させれば、CPUユニットの動作の高速化が可能である。しかし、ASICにプログラム内のすべての処理に特化した演算回路を追加することが必要となり、開発コストがかかりすぎてしまうため現実的ではない。
特許文献1には、マイクロプロセッサの処理の一部をプログラマブルロジックデバイスに相当するリコンフィギャラブルプロセッサに実行させる処理の高速化の方法が開示されている。この方法では、プログラマブルロジックデバイスが、処理に時間がかかる関数を含むプログラム要素を実行し、マイクロプロセッサが、関数を含まないプログラム要素を実行する。
特開2009−251782号公報
特許文献1の方法では、プログラマブルロジックデバイスは、関数を含むプログラム要素の処理のみを実行する。
このため、新規にプログラムを作成する場合、プログラマブルロジックデバイスに実行させたい処理については、その処理を関数に含ませるようユーザが演算装置を意識して初期プログラムを作成しなければならない。
また、既存のプログラムのある処理を、マイクロプロセッサではなくプログラマブルロジックデバイスが実行するように変更する場合には、その処理を関数に含ませるようにプログラムを修正する必要があり、手間がかかる。
本発明は、上記実情に鑑みてなされたものであり、プログラマブルロジックコントローラにおいて、マイクロプロセッサの処理をプログラマブルロジックデバイスに分散する場合において、プログラム作成後に演算装置の選択を可能とし、さらに、大幅なプログラム修正を要することなく、演算装置の変更を可能とすることを目的とする。
上記目的を達成するため、本発明の第1の観点に係るプログラマブルロジックコントローラのCPUユニットは、演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有する。ユーザプログラム内の命令それぞれは、ユーザが選択した、命令を処理する演算装置を示す演算装置情報を含む。命令を処理する演算装置を選択する第1モードにおいて、ユーザが同じ命令をマイクロプロセッサまたはプログラマブルロジックデバイスのいずれか一方が処理することを選択した場合、同じ命令の演算装置情報には、マイクロプロセッサまたはプログラマブルロジックデバイスのうちユーザが選択したいずれか一方を示す値が設定されている。命令を処理する演算装置を選択する第2モードにおいて、ユーザが命令それぞれを処理する演算装置としてマイクロプロセッサまたはプログラマブルロジックデバイスのいずれか一方を個別に選択した場合、命令の演算装置情報には、マイクロプロセッサまたはプログラマブルロジックデバイスのうちユーザが個別に選択したいずれか一方を示す値がそれぞれ設定されている。マイクロプロセッサは、演算装置情報がマイクロプロセッサを示す場合、命令を処理する。プログラマブルロジックデバイスは、演算装置情報がプログラマブルロジックデバイスを示す場合、命令を処理する。演算装置情報が変更されると、変更後の演算装置情報に基づいて、マイクロプロセッサまたはプログラマブルロジックデバイスが命令を処理する。
本発明の第1の観点に係るプログラマブルロジックコントローラのCPUユニットにおいては、命令を処理する演算装置としてユーザが選択した演算装置情報がマイクロプロセッサを示す場合、マイクロプロセッサが命令を処理し、命令の演算装置情報がプログラマブルロジックデバイスを示す場合、プログラマブルロジックデバイスが命令を処理する。演算装置情報が変更されると、変更後の演算装置情報に基づいて、マイクロプロセッサまたはプログラマブルロジックデバイスが命令を処理する。このような構成を備えることで、プログラム作成時に各処理を実行する演算装置を意識することなく、プログラム作成後に演算装置の選択が可能となる。さらに、大幅なプログラム修正を要することなく、演算装置の変更が可能となる。
本発明の実施の形態に係るPLCの構成を示すブロック図 実施の形態に係るPLCのCPUユニットのプログラムのスキャンのフローチャート 図2のプログラム実行の詳細なフローチャート 実施の形態に係る演算装置情報を変更するエンジニアリングツールのメニュー画面の一例を示す図 実施の形態に係る演算装置情報を変更するエンジニアリングツールのサブメニュー画面の一例を示す図 実施の形態に係る演算装置情報を変更するエンジニアリングツールの自動選択モードにおける、演算装置の選択の処理を示すフローチャート 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード1における選択画面の一例を示す図 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード2における選択画面の一例を示す図 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード1における選択画面の他の例を示す図 実施の形態に係る演算装置情報を変更するエンジニアリングツールの手動選択モード2における選択画面の他の例を示す図
(実施の形態)
以下、本発明の実施の形態に係るプログラマブルロジックコントローラ(Programmable Logic Controller、以下、PLCと示す)1を説明する。
図1に示すように、PLC1は、PLC1全体を制御するCPUユニット100と、CPUユニット100の演算の入力データをCPUユニット100に供給する入力ユニット200と、CPUユニット100から出力データが供給される出力ユニット300とを含む。
入力ユニット200には、センサ、スイッチ等を含む検出器901が接続されている。入力ユニット200からCPUユニット100には、検出器901のセンサ、スイッチ等から出力されたオン/オフ信号が供給される。
例えば、入力ユニット200は、検出器901のスイッチがオンしたことの通知としてオン信号を、スイッチがオフしたことの通知としてオフ信号を、CPUユニット100に供給する。オン信号を“1”、オフ信号を“0”と表した場合、入力ユニット200は、スイッチがオンすると、“1”をCPUユニット100に供給する。入力ユニット200は、スイッチがオフすると、“0”をCPUユニット100に供給する。
出力ユニット300には、アクチュエータ、表示灯等を含む被制御機器902が接続されている。CPUユニット100から出力ユニット300には、被制御機器902のアクチュエータ、表示灯等を制御するオン/オフ信号が供給される。
例えば、CPUユニット100は、被制御機器902のアクチュエータを駆動させる指示としてオン信号を、アクチュエータを停止させる指示としてオフ信号を、出力ユニット300に供給する。オン信号を“1”、オフ信号を“0”として表した場合、CPUユニット100は、アクチュエータを駆動させるため、“1”を出力ユニットに供給する。CPUユニット100は、アクチュエータを停止させるため、“0”を出力ユニットに供給する。
CPUユニット100と入力ユニット200と出力ユニット300とは、共有バス400を介して接続され、共有バス400を介して通信を行う。また、図示していないが、CPUユニット100と入力ユニット200と出力ユニット300とは、ベースユニットを介して電源ユニットに接続されており、電源ユニットから供給される電源によって動作する。
CPUユニット100は、各種データを記憶する記憶部110と、後述するエンジニアリングツール500との通信のためのツールインタフェース120と、共有バス400を介した通信のための共有バスインタフェース130と、演算装置としてASIC(Application Specific Integrated Circuit)141とマイクロプロセッサ142(以下、MPU142と称する)とFPGA(Field Programmable Gate Array)143とを有する演算部140とを含む。CPUユニット100の各部はバス190を介して接続されている。FPGA143は、プログラマブルロジックデバイスの一例である。
記憶部110は、ROM(Read Only Memory)、RAM(Random Access Memory)、メモリカード等を含む。記憶部110は、ユーザプログラム111を格納する。
ユーザプログラム111は、被制御機器902を制御するためのプログラムである。ユーザが後述のエンジニアリングツール500を用いてユーザプログラム111を作成する。作成されたユーザプログラム111は、ニーモニック方式のアセンブリ言語に変換された後、PLC1のCPUユニット100にアップロードされ、記憶部110に格納される。ユーザプログラム111において、オン/オフ信号の入力により、各命令はオンまたはオフの状態になる。実行されるのはオンの状態になった命令のみである。
ユーザプログラム111内の各命令は、当該命令が演算部140のいずれの演算装置により実行されるかを示す情報として演算装置情報を含む。例えば、ASIC141を“1”、MPU142を“2”、FPGA143を“3”で表すものとし、これらの値を示すビット列が、各命令に追加されている。本実施の形態では、ASICが処理するよう決められた特定の命令については、演算装置情報を変更することができない。
ツールインタフェース120は、CPUユニット100がエンジニアリングツール500と通信するためのインタフェースである。ツールインタフェース120は、演算部140の制御に従って動作する。
共有バスインタフェース130は、CPUユニット100が共有バス400を介して入力ユニット200と出力ユニット300と通信するための通信インタフェースである。共有バスインタフェース130は、演算部140の制御に従って動作する。
演算部140は、入力ユニット200から供給される入力データを使用して、ユーザプログラム111の各命令を実行する。より具体的には、ユーザプログラム111内の各命令の演算装置情報で指定された演算装置が、その命令を実行する。入力データは、検出器901のセンサ、スイッチ等が出力したオン/オフ信号を示す値である。演算部140は、オン信号により、オンの状態になった命令のみを実行し、演算の結果得られた出力に基づいてオン/オフ信号を出力ユニット300に供給する。出力ユニット300は供給されたオン/オフ信号に従って被制御機器902を制御する。
ASIC141は、命令の実行時に一時的にデータを格納するレジスタ1411と、次に実行すべき命令のアドレスを格納するプログラムカウンタ1412とを有する。ASIC141は、ユーザプログラム111の実行において、特定の命令のみを処理する。ASIC141は設計段階に決められた特定の命令しか実行できないからである。この特定の命令をASIC対応命令という。また、ユーザプログラム111のASIC対応命令以外の命令をASIC非対応命令という。
MPU142は、命令の実行時に一時的にデータを格納するレジスタ1421を有する。MPU142は、ASIC非対応命令のうち、MPU142が処理するように選択された命令を処理する。
FPGA143は、命令の実行時に一時的にデータを格納するレジスタ1431を有する。FPGA143は、ASIC非対応命令のうち、FPGA143が処理するよう選択された命令を処理する。FPGA143については、製造後に、ユーザがFPGA143の論理回路の構成を変更することが可能である。例えば、ユーザプログラム111の変更により、ユーザプログラム111に新たな命令が追加され、その命令がASIC対応命令でない場合には、ASIC141は、追加された新たな命令を実行することができない。一方、FPGA143は、論理回路の構成の変更により、新たに追加された命令を実行することができる。MPU142も、FPGA143と同様に、ASIC非対応命令を実行することができるが、処理速度については、FPGA143の方が高速である。
MPU142が実行する命令とFPGA143が実行する命令の選択方法については後述する。
入力ユニット200は、各種データを記憶する記憶部210と、CPUユニット100とのデータ交換のための共有メモリ220と、共有バス400を介した通信のための共有バスインタフェース230と、入力ユニット200全体を制御するMPU240とを含む。入力ユニット200の各部はバス290を介して接続されている。
記憶部210は、ROM、RAM、メモリカード等を含む。記憶部210は、入力ユニット200の動作のための動作プログラム211を格納する。
共有メモリ220は、CPUユニット100、入力ユニット200のいずれもが読み書き可能なメモリである。共有メモリ220には、検出器901のセンサ、スイッチ等が出力したオン/オフ信号を示す値が格納される。
共有バスインタフェース230は、入力ユニット200が共有バス400を介してCPUユニット100と通信するための通信インタフェースである。共有バスインタフェース130は、MPU240の制御に従って動作する。
MPU240は、動作プログラム211を実行して、検出器901のセンサ、スイッチ等が何らかの対象物を検出している状態をオン、何らかの対象物を検出していない状態をオフとして、検出したオンまたはオフを示す値を共有メモリ220に格納する。この値がCPUユニット100での演算における入力のオン/オフ信号となる。
出力ユニット300は、各種データを記憶する記憶部310と、CPUユニット100とのデータ交換のための共有メモリ320と、共有バス400を介した通信のための共有バスインタフェース330と、出力ユニット300全体を制御するMPU340とを含む。出力ユニット300の各部はバス390を介して接続されている。
記憶部310は、ROM、RAM、メモリカード等を含む。記憶部310は、出力ユニット300の動作のための動作プログラム311を格納する。
共有メモリ320は、CPUユニット100、出力ユニット300のいずれもが読み書き可能なメモリである。共有メモリ320には、CPUユニット100の演算の出力であるオン/オフ信号を示す値が格納される。この値は、被制御機器902のアクチュエータ、表示灯等を制御するための制御データであり、CPUユニット100により共有メモリ320に書き込まれる。
共有バスインタフェース330は、出力ユニット300が共有バス400を介してCPUユニット100と通信するための通信インタフェースである。共有バスインタフェース330は、MPU340の制御に従って動作する。
MPU340は、動作プログラム311を実行して、CPUユニット100から供給されたオン/オフ信号に基づいて被制御機器902を制御する。例えば、オン信号が供給された場合、MPU340は、被制御機器902のアクチュエータをオンする。
前述のように、ユーザは、エンジニアリングツール500を使用して、CPUユニット100が実行するユーザプログラム111を作成する。作成されたユーザプログラム111は、通信ケーブル501によりエンジニアリングツール500とCPUユニット100とを接続した状態で、CPUユニット100にアップロードされる。
エンジニアリングツール500は、パーソナルコンピュータにプログラム作成用のアプリケーションをインストールした装置である。エンジニアリングツール500は、各種データを記憶する記憶部510と、ユーザの操作を受け付ける操作入力部520と、画像を表示装置に表示する表示部530と、CPUユニット100との通信のためのツールインタフェース540と、エンジニアリングツール500全体を制御するCPU550とを含む。エンジニアリングツール500の各部はバス590により接続されている。
記憶部510は、オペレーティングシステム511、プログラム作成アプリケーション512を含む。オペレーティングシステム511は、エンジニアリングツール500全体を制御するためのプログラムである。プログラム作成アプリケーション512は、ユーザプログラム111を作成し、作成したユーザプログラム111の各命令の演算装置を選択するためのプログラムである。
操作入力部520は、キーボード、マウス等の入力装置を含み、ユーザからの操作入力を受け付け、受け付けた操作に基づく信号をCPU550に出力する。表示部530は、画像表示装置を含み、CPU550の制御に従って、画像を画像表示装置の画面に出力する。操作入力部520と表示部530は、ユーザの指示を受け付ける受付部として機能する。
ツールインタフェース540は、CPU550の制御に従って、通信ケーブル501で接続されたCPUユニット100との間でデータの送受信を行う。
CPU550は、オペレーティングシステム511を実行して、エンジニアリングツール500全体を制御する。また、CPU550は、プログラム作成アプリケーション512を実行して、ユーザプログラム111を作成する機能、ユーザプログラム111内の各命令について演算装置の選択を変更する機能を実現する。
上述のCPUユニット100は、ユーザプログラム111を次のように実行する。CPUユニット100は、ユーザプログラム111を先頭の命令から順次処理し、プログラム終了を示すEND命令を読み込むと、再び先頭の命令の処理へ戻る。この方式をスキャン方式という。
CPUユニット100は、ユーザプログラム111の各命令の実行に加え、各命令の実行に必要な入力の取得と、命令の実行結果の出力を行う。具体的には、図2に示すように、CPUユニット100の演算部140は、リフレッシュ処理(ステップS11)、プログラム実行(ステップS12)、エンド処理(ステップS13)の一連の処理を1サイクルとして実行し、このサイクルを繰り返す。
ステップS11のリフレッシュ処理では、まず、演算部140は、記憶部110に格納されている前回のサイクルでユーザプログラム111を実行して得られた出力データを出力ユニット300の共有メモリ320に書き込む。その後、当該出力データを記憶部110から削除する。さらに、演算部140は、共有バス400を介して、入力ユニット200の共有メモリ220から入力データを読み出し、読み出した入力値を記憶部110に格納する。
ステップS12のプログラム実行では、演算部140は、ユーザプログラム111の命令を最初から順次読み出し、読み出した命令を実行する。本実施の形態では、ASIC141がASIC対応命令を処理し、MPU142またはFPGA143がASIC非対応命令を処理する。演算部140は、ユーザプログラム111のプログラム終了を示すEND命令を読み出すと、ユーザプログラム111の実行を終了する。MPU142またはFPGA143によるASIC非対応命令の処理は、本発明のマイクロプロセッサまたはプログラマブルロジックデバイスのいずれかが命令を処理するステップの一例である。
ステップS13のエンド処理では、CPUユニット100は、ネットワークを介して他の機器と通信する不図示のネットワークユニットとのデータ転送処理、その他の共通処理を実行する。
本実施の形態では、ユーザプログラム111の命令をASIC141、MPU142、FPGA143が分担して処理する。以下、図2のステップS12のプログラム実行のステップにおける、ASIC141、MPU142、FPGA143の動作をより詳しく説明する。
ASIC141のプログラムカウンタ1412には、ユーザプログラム111の最初の命令のアドレスが格納されているものとする。
図3に示すように、ASIC141は、プログラムカウンタ1412のアドレスが示す命令を、ユーザプログラム111からレジスタ1411に読み出す(ステップS121)。ASIC141は、併せてプログラムカウンタ1412のアドレスをカウントアップする。従って、プログラムカウンタ1412には、次の命令を指すアドレスがセットされる。
ASIC141は、読み出した命令がEND命令であるか否かを判別する(ステップS122)。END命令でないと判別すると(ステップS122;No)、ASIC141は、読み出した命令がASIC対応命令であるか否かを判別する(ステップS123)。具体的には、その命令に含まれる演算装置情報を示すビット列が、ASIC141を示すビット列であるか否かを判別する。
ASIC141は、読み出した命令がASIC対応命令であると判別すると(ステップS123;Yes)、その命令を実行する(ステップS124)。続いて、ASIC141は、プログラムカウンタ1412にセットされているアドレスの命令をレジスタ1411に読み出す(ステップS121)。
ステップS123で、ASIC141が、読み出した命令がASIC対応命令でない(ステップS123;No)と判別すると、ASIC141は、MPU142に割り込み命令を出力した後、プログラムカウンタ1412の値を保持し、停止する。
MPU142は、ASIC141から割り込み命令を受けると、ASIC141のレジスタ1411に格納された命令を自身のレジスタ1421に読み出す。MPU142は、読み出した命令の演算装置情報に基づいて、その命令が、MPU142が処理するよう選択された命令であるか否かを判別する(ステップS125)。MPU142は、その命令が、MPU142が処理するよう選択された命令であると判別すると(ステップS125;Yes)、その命令を実行する(ステップS126)。その後、MPU142は、ASIC141を再起動するため、ASIC141のレジスタ1411に再起動を指示する値を書き込む。これにより、ASIC141は、再起動し、プログラムカウンタ1412に保持したアドレスが示す命令をレジスタ1411に読み出し(ステップS121)、命令の実行を再開する。
一方、MPU142は、ステップS125で読み出した命令が、MPU142が処理するよう選択された命令ではないと判別すると(ステップS125;No)、FPGA143のレジスタ1431にその命令を書き込み、FPGA143にその命令を実行させる(ステップS127)。FPGA143は、自身のレジスタ1431に格納された命令を実行し、演算が終了したことを示すリターン値をレジスタ1431に書き込む。MPU142は、リターン値がレジスタ1431に書き込まれると、ASIC141を再起動するため、ASIC141のレジスタ1411に再起動を指示する値を書き込む。これにより、ASIC141は、プログラムカウンタ1412に保持したアドレスが示す命令をレジスタ1411に読み出し(ステップS121)、命令の実行を再開する。
また、ステップS122で、ASIC141は、読み出した命令がEND命令であると判別すると(ステップS122;Yes)、ユーザプログラム111の実行を終了する。
その後、CPUユニット100は、図2のステップS13のエンド処理を実行する。
前述のように、ASIC非対応命令は,演算装置情報に設定された値に応じて、MPU142またはFPGA143により処理される。ユーザプログラム作成時においては、すべてのASIC非対応命令の演算装置情報には、デフォルト値としてMPU142を示す値が設定されている。
以下、エンジニアリングツール500を使用して、ASIC非対応命令の演算装置情報を変更する方法を説明する。
まず、ユーザは、キーボード、マウス等の操作入力部520を操作して、エンジニアリングツール500のプログラム作成アプリケーション512を起動する。ユーザは、表示部530に表示された図4に示すようなメニュー画面から、「ユーザプログラムの作成」メニューを選択し、不図示のプログラム作成画面を表示部530に表示させる。ユーザは、ユーザプログラム111を不図示のプログラム作成画面上で作成し、保存する。作成されたユーザプログラム111はエンジニアリングツール500の記憶部510に格納される。
続いて、ユーザは、操作入力部520を操作して、再び図4に示すメニュー画面を表示部530に表示させる。ユーザは、「演算装置の選択」メニューを選択し、図5に示すようなサブメニュー画面を表示部530に表示させる。
図5に示すように、演算装置の選択のサブメニューには、「自動選択モード」、「手動選択モード1」、「手動選択モード2」がある。自動選択モードにおいては、エンジニアリングツール500が、ユーザプログラム111を分析し、FPGA143が実行することで、高速化、性能向上が見込める命令をFPGA143が実行する命令として選択し、選択した命令の演算装置情報にFPGA143を示す値を設定する。手動選択モード1、2においては、ユーザが、各命令の演算装置を選択する。
(自動選択モード)
自動選択モードを実行する場合、ユーザは、サブメニュー画面で、対象プログラムとして、任意のユーザプログラム111を選択し、「自動選択モード」を指定する。図示する例では、ユーザプログラム111として「プログラム001」が選択されている。
「自動選択モード」が選択されると、エンジニアリングツール500のCPU550は、プログラム作成アプリケーション512を実行して下記の処理を行う。
ここで、あらかじめ記憶部510には下記の情報が格納されている。
(1)ASIC非対応命令の数:N。この値は、全てのASIC非対応命令の種類の数である。ユーザプログラム111である「プログラム001」内に含まれているか否かを問わない。
(2)FPGA143の総ゲート数:GFPGA。この値は、FPGA143のハードウェアの仕様に基づく値である。
(3)各命令の処理のために使用されるFPGA143のゲート数(使用ゲート数):G(n=1、2、…、N)。
(4)各命令について、FPGA143を使用することで削減することが可能な時間(削減可能時間):T(n=1、2、…、N)。ここでは。MPU142の命令の処理の時間と、FPGA143の当該命令の処理の時間との差分とする。削減可能時間は、本発明のプログラマブルロジックデバイスによる各命令の処理時間の一例である。また、上記(2)、(3)、(4)は、本発明のプログラマブルロジックデバイスの定義情報の一例である。
図6に示すように、N種類の命令のそれぞれが、ユーザプログラム111内でコールされている回数(コール数)C(n=1、2、…、N)をカウントする(ステップS21)。
各命令について、FPGA143の1ゲート当たりの処理時間を求める(ステップS22)。ここでは、次の式(1)を使用する。
各命令についての1ゲート当たりの処理時間P=削減可能時間T×ステップS21で求めたコール数C÷使用ゲート数G(n=1、2、…、N)・・・・・式(1)
命令を、ステップS22で求めた各命令についての1ゲート当たりの処理時間Pでソートする(ステップS23)。ここでは、降順にソートする。
1ゲート当たりの処理時間Pが一番大きな命令から、当該命令の使用ゲート数Gを順次加算する。使用ゲート数Gの合計が、FPGA143の総ゲート数GFPGAを超えない間、加算を続ける。
具体的には、まず、カウンタiに“1”をセットし、ステップS23でソートされたi番目の命令の使用ゲート数Gを、現在のGとして合計値sにセットする(ステップS24)。
次に、合計値sが総ゲート数GFPGAより大きいか否かを判別する(ステップS25)。合計値sが総ゲート数GFPGA以下であると判別すると(ステップS25;No)、i番目の命令の演算装置情報にFPGA143を設定する(ステップS26)。カウンタiをインクリメントし、現在の合計値sと、i番目の命令の使用ゲート数Gとを加算したものを、新たな合計値sとする(ステップS27)。再び、ステップS25へ戻る。
ステップS25で、合計値sがGFPGAより大きいと判別すると(ステップS25;Yes)、処理を終了する。
上記処理により、CPU550は、FPGA143が実行する命令として選択した命令の演算装置情報にFPGA143を設定する。一方、FPGA143が実行する命令として選択しなかった命令の演算装置情報を更新しない。このように、CPU550は、FPGA143が処理する命令と、FPGA143が処理しない命令とを判別する判別部、FPGA143が処理する命令と判別した命令の演算装置情報を更新する更新部として機能する。FPGA143が処理する命令として選択された命令は、本発明の第1命令の一例である。FPGA143が処理しない命令は、本発明の第2命令の一例である。
自動選択モードでの処理が終わると、ユーザは操作入力部520を操作して、再び図5に示すサブメニュー画面を表示させる。ユーザは、更新後のプログラム001をCPUユニット100にアップロードするため、サブメニュー画面で、「プログラムのアップロード」を選択する。なお、エンジニアリングツール500とCPUユニット100とはあらかじめ通信ケーブル501で接続されているものとする。CPU550は、「プログラムのアップロード」が選択されると、記憶部510に格納されているユーザプログラム111である「プログラム001」を、CPUユニット100の記憶部110に転送する。このように、CPU550は、演算装置情報が更新されたユーザプログラム111を、CPUユニット100に転送する転送部として機能する。
上記の自動選択モードにおいては、同じASIC非対応命令がユーザプログラム111内でコールされた回数を示す同一のASIC非対応命令のコール数、各命令の1回当たりの処理時間、使用するゲート数に基づいて分析を行い、1ゲート当たりの処理時間が大きい命令から順に、FPGA143が処理を実行する命令として選択する。処理の負荷が大きい命令をFPGA143に割り当てることで、PLC1の動作の高速化を図ることができる。
上述の自動選択モードでは、ユーザプログラム111を分析して、FPGA143で実行する命令が選択されたが、以下の手動選択モード1ではユーザ自身が、各命令の演算装置を選択することができる。
(手動選択モード1)
手動選択モード1を実行する場合、ユーザは、操作入力部520を操作して、図5のサブメニュー画面を表示させ、サブメニュー画面で、対象プログラムとして任意のユーザプログラム111を選択し、「手動選択モード1」を指定する。
「手動選択モード1」が選択されると、エンジニアリングツール500のCPU550は、図7に示すような選択画面を表示部530に表示する。この画面には、ユーザプログラム111内でコールされているASIC非対応命令の一覧が表示される。ここでは、ユーザプログラム111内でコールされているASIC非対応命令の一覧と、各命令がユーザプログラム111内でコールされている回数を示すコール回数と、各命令を1回実行することによる負荷を表すリソース負荷と、それぞれの命令の現在の実行部とを表示する。実行部の値は、当該命令を実行する演算装置がMPU142とFPGA143のいずれであるかを示す。実行部が「S/W」である場合、MPU142が命令を処理することを表す。実行部が「H/W」である場合、FPGA143が命令を処理することを表す。手動選択モード1においては、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち指定されたいずれかの演算装置が処理する。例えば、命令Aの実行部を「S/W」から「H/W」に更新した場合、FPGA143がユーザプログラム111内のすべての命令Aを処理する。
ユーザが、選択した命令の実行部の値を変更し、画面下部の「保存」を選択して、変更内容を保存する。従って、CPU550は、ユーザプログラム111内のそれぞれの命令について、演算装置情報を選択された実行部の値で更新する。例えば、ユーザが、命令Aの実行部を「S/W」から「H/W」に変更して、「保存」を選択する。この場合、ユーザプログラム111内のすべての命令Aの演算装置情報は、FPGA143を示す値に更新される。
手動選択モード1での処理が終わると、ユーザは自動選択モードのときと同様に、図5に示すサブメニュー画面上で、「プログラムのアップロード」を選択して、演算装置情報が変更されたユーザプログラム111をCPUユニット100にアップロードする。
また、図7に示す画面では、各命令のコール回数、リソース負荷を併せて表示する。よって、ユーザは、各命令の呼び出し回数、リソース負荷を考慮した上で、当該命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択することができる。
ユーザプログラム111の各命令はオンした場合のみ実行されるので、例えば、ユーザプログラム111に含まれる命令Aがすべて1サイクル内で実行されるわけではない。このような実情もあり、現場の状況を知るユーザが各命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択するほうが、より好適な選択を行うことも可能である。
上述の手動選択モード1では、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち指定されたいずれかの演算装置が処理する。このため、選択内容が変更されない間は、当該命令が何度呼び出されたとしても、その命令を実行するのは、MPU142またはFPGA143のいずれか選択された方である。次に説明する手動選択モード2では、より細かな選択が可能な構成を有する。
(手動選択モード2)
次に手動選択モード2を説明する。ユーザは、操作入力部520を操作して、図5のサブメニュー画面を表示させる。ユーザは、サブメニュー画面で、対象とするユーザプログラムとして「プログラム001」を選択し、選択モードとして「手動選択モード2」を選択する。
「手動選択モード2」が選択されると、エンジニアリングツール500のCPU550は、表示部530に図8に示すように、ユーザが選択したプログラム001のラダー図と、各命令の実行部とを表示する。実行部の値は、手動選択モード1と同様に、当該命令を実行する演算装置がMPU142とFPGA143のいずれであるかを示す。図示する例では、ユーザプログラム111内のすべての命令の演算装置を個別に選択する。前述の手動選択モード1では、同じASIC非対応命令はすべて、MPU142あるいはFPGA143のうち一方の演算装置が処理するように設定した。これに対し、手動選択モード2では、ユーザプログラム111内で同じASIC非対応命令が複数回コールされていても、それぞれのASIC非対応命令の演算装置を個別に指定する。例えば、同じ命令Aであっても、1番始めにコールされる命令AをMPU142に実行させ、次にコールされる命令AをFPGA143に実行させるように指定することが可能である。
ユーザが、選択した命令の実行部の値を変更し、画面下部の「保存」を選択して、変更内容を保存する。従って、CPU550は、ユーザプログラム111内のそれぞれの命令について、演算装置情報を選択された実行部の値で更新する。
手動選択モード2での処理が終わると、ユーザは自動選択モードのときと同様に、図5に示すサブメニュー画面上で、「プログラムのアップロード」を選択して、演算装置情報が変更されたユーザプログラム111をCPUユニット100にアップロードする。
手動選択モード2おいても、手動選択モード1と同様に、以下のようなメリットがある。ユーザプログラム111の各命令はオンした場合のみ実行されるので、ユーザプログラム111に含まれるすべての命令が1サイクル内で実行されるわけではない。このような実情もあり、現場の状況を知るユーザが各命令をMPU142とFPGA143のどちらの演算装置で処理するかを選択することができ、より好適な選択を行うことも可能である。
以上説明したように、本発明の実施の形態に係るPLC1では、ASIC非対応命令に含まれる演算装置情報に、MPU142またはFPGA143を示す情報を設定する。プログラム実行時には、演算装置情報が示す演算装置が命令を処理する。また、エンジニアリングツール500を使用して、演算装置情報を変更することができる。このような構成を備えることで、ユーザは、プログラム作成時に各処理を実行する演算装置を意識する必要がなく、プログラム作成後に演算装置を選択することができる。さらに、大幅なプログラム修正を要することなく、演算装置を変更することができる。
さらに、上記の実施の形態に係る構成においては、以下のような有利な効果が期待できる。
自動選択モードでは、同一のASIC非対応命令のユーザプログラム111内でのコール数、各命令の1回当たりの処理時間、各命令の実行に使用されるゲート数に基づいて分析を行い、処理の負荷が大きい命令をFPGA143に割り当てることで、PLC1の動作の高速化を図ることができる。また、ユーザ自身が設定せずとも、好適な演算装置の選択をすることができるため、ハードウェアの知識がないユーザであっても操作が容易である。
ユーザプログラム111を修正した場合、自動選択モードで演算装置の選択の処理を再度実行し、演算装置情報を更新したユーザプログラム111をCPUユニット100にアップロードすればよく、操作が容易である。また、ユーザプログラム111を変更しなくとも、FPGA143の仕様を変更した場合、作成済みのユーザプログラム111を別の仕様の異なるCPUユニット100で実行する場合には、上述の(1)〜(4)の各種パラメータをエンジニアリングツール500の記憶部510に格納した上で、自動選択モードで演算装置の選択の処理を再度実行すればよい。このようにして、好適な演算装置の選択をすることが可能である。
自動選択モードでは、FPGA143の仕様を踏まえて、個々のユーザプログラム111を分析するため、実行環境に応じた演算装置の好適な選択が可能である。
また、分析処理は、エンジニアリングツール500において行われるため、実行時のPLC1の性能に影響することはない。
手動選択モード1及び2では、現場の状況を知るユーザが各命令を処理する演算装置を選択することで、自動選択モードより好適な選択を行うことが可能である。手動選択モード1及び2においても、ユーザプログラム111の作成後に演算装置を変更することができるので、ユーザプログラム111の作成時に演算装置を意識する必要がない。同様に、ユーザプログラム111を変更する際も、ユーザプログラム111を修正後は、演算装置の選択を再度行えばよいため、ユーザプログラム111の変更時においても演算装置を意識する必要がない。また、エンジニアリングツール500を使用して、演算装置情報を容易に変更することができるため、作成済みのユーザプログラム111を、別の仕様の異なるCPUユニット100で実行する場合、最適な演算装置を選択できるまで、演算装置の選択を何度か繰り返すこともできる。
また、手動選択モード1を使用して、PLC1の性能を評価することができる。例えば、1つの命令について、MPU142で処理した場合の処理時間、FPGA143で処理した場合の処理時間をそれぞれ計測して、実処理時間の差を求める可能である。各命令について、事前に演算装置の実処理時間の統計データを作成しておく。この統計データに基づいて、手動選択モード1または手動選択モード2において、命令毎に演算装置を選択することができる。
また、手動選択モードで、特定の箇所でのある命令だけをMPU142またはFPGA143のユーザプログラム111内の他の命令とは異なる演算装置で実行させることもできる。このようにして、ユーザプログラム111のバグの発見のために使用することも可能である。
手動選択モード1の選択画面では、図9に示すように、ラダー図を併せて表示してもよい。命令がユーザプログラム111内のどこでコールされているかをユーザが確認することができ、ユーザがその点も考慮して演算装置を選択することが可能となる。
手動選択モード2の選択画面では、図8に示すようにラダー図だけ表示するのではなく、図10のように、命令の一覧と、コール回数、その命令を実行する場合のリソースの負荷を併せて表示してもよい。
上述の自動選択モードでは、プログラマブルロジックデバイスによる各命令の処理時間の一例として、FPGA143を使用することで削減することが可能な時間を使用した。あるいは、プログラマブルロジックデバイスによる各命令の処理時間の実際の計測値を使用してもよい。あるいは、プログラマブルロジックデバイスによる各命令の処理時間として理論上予測される値を使用してもよい。
自動選択モードにおける、演算装置の選択の方法は、上記のように、1ゲートあたりの処理時間の大きな命令から順にFPGA143に割り当てていたが、この方法に限られない。例えば、ユーザプログラム111内の各命令のコール回数と、プログラマブルロジックデバイスによる各命令の処理時間とを乗じて得られた値の大きな命令から順にFPGA143に割り当ててもよい。あるいは、ユーザプログラム111内の各命令のコール回数と、プログラマブルロジックデバイスによる各命令の処理時間と、各命令で使用されるゲート数とを乗じて得られた値の大きな命令から順にFPGA143に割り当ててもよい。または、単に、コール回数の多い命令から順に、または、プログラマブルロジックデバイスによる各命令の処理時間が大きな命令から順に、FPGA143に割り当ててもよい。
上記プログラムを記録する記録媒体としては、USBメモリ、フレキシブルディスク、CD、DVD、Blu−ray(登録商標)、MO、SDカード、メモリースティック(登録商標)、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
1 PLC、100 CPUユニット、110 記憶部、111 ユーザプログラム、120 ツールインタフェース、130 共有バスインタフェース、140 演算部、141 ASIC、1411 レジスタ、1412 プログラムカウンタ、142 MPU、1421 レジスタ、143 FPGA、1431 レジスタ、190 バス、200 入力ユニット、210 記憶部、211 動作プログラム、220 共有メモリ、230 共有バスインタフェース、240 MPU、290 バス、300 出力ユニット、310 記憶部、311 動作プログラム、320 共有メモリ、330 共有バスインタフェース、340 MPU、390 バス、400 共有バス、500 エンジニアリングツール、501 通信ケーブル、510 記憶部、511 オペレーティングシステム、512 プログラム作成アプリケーション、520 操作入力部、530 表示部、540 ツールインタフェース、550 CPU、590 バス、901 検出器、902 被制御機器

Claims (6)

  1. 演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットであって、
    ユーザプログラム内の命令それぞれは、ユーザが選択した、前記命令を処理する演算装置を示す演算装置情報を含み、
    (i)前記命令を処理する演算装置を選択する第1モードにおいて、前記ユーザが同じ前記命令を前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方が処理することを選択した場合、同じ前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが選択したいずれか一方を示す値が設定され、(ii)前記命令を処理する演算装置を選択する第2モードにおいて、前記ユーザが前記命令それぞれを処理する演算装置として前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方を個別に選択した場合、前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが個別に選択したいずれか一方を示す値がそれぞれ設定され、
    前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記命令を処理し、
    前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記命令を処理し、
    前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
    プログラマブルロジックコントローラのCPUユニット。
  2. 前記演算装置として、ASICを更に備え、
    前記命令は、前記ASICが実行可能な特定の命令と、前記特定の命令以外のASIC非対応命令とを含み、
    前記ASICは、前記特定の命令を処理し、
    前記ASIC非対応命令が含む前記演算装置情報は、前記マイクロプロセッサ及び前記プログラマブルロジックデバイスのうち、前記ASIC非対応命令を処理する演算装置を示し、
    前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記ASIC非対応命令を処理し、
    前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記ASIC非対応命令を処理し、
    前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記ASIC非対応命令を処理する、
    請求項1に記載のプログラマブルロジックコントローラのCPUユニット。
  3. 前記ASICが処理する前記特定の命令は、前記特定の命令を処理する演算装置を示す演算装置情報を含む、
    請求項2に記載のプログラマブルロジックコントローラのCPUユニット。
  4. CPUユニットと、前記CPUユニットに検出器の出力データを供給する入力ユニットと、前記CPUユニットから被制御機器を制御するための制御データが供給される出力ユニットと、を有するプログラマブルロジックコントローラであって、
    前記CPUユニットは、演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有し、
    ユーザプログラム内の命令それぞれは、ユーザが選択した、前記命令を処理する演算装置を示す演算装置情報を含み、
    (i)前記命令を処理する演算装置を選択する第1モードにおいて、前記ユーザが同じ前記命令を前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方が処理することを選択した場合、同じ前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが選択したいずれか一方を示す値が設定され、(ii)前記命令を処理する演算装置を選択する第2モードにおいて、前記ユーザが前記命令それぞれを処理する演算装置として前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方を個別に選択した場合、前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが個別に選択したいずれか一方を示す値がそれぞれ設定され、
    前記マイクロプロセッサは、前記演算装置情報が前記マイクロプロセッサを示す場合、前記命令を処理し、
    前記プログラマブルロジックデバイスは、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記命令を処理し、
    前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
    プログラマブルロジックコントローラ。
  5. 演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するCPUユニットが、ユーザプログラムを実行する方法であって、
    前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれかが、前記ユーザプログラム内の命令を処理するステップ、
    を含み、
    前記命令は、ユーザが選択した、前記命令を処理する前記演算装置を示す演算装置情報を含み、(i)前記命令を処理する演算装置を選択する第1モードにおいて、前記ユーザが同じ前記命令を前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方が処理することを選択した場合、同じ前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが選択したいずれか一方を示す値が設定され、(ii)前記命令を処理する演算装置を選択する第2モードにおいて、前記ユーザが前記命令それぞれを処理する演算装置として前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方を個別に選択した場合、前記命令の前記演算装置情報には、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが個別に選択したいずれか一方を示す値がそれぞれ設定され、
    前記ステップにおいて、前記演算装置情報が前記マイクロプロセッサを示す場合、前記マイクロプロセッサが前記命令を処理し、
    前記ステップにおいて、前記演算装置情報が前記プログラマブルロジックデバイスを示す場合、前記プログラマブルロジックデバイスが前記命令を処理し、
    前記演算装置情報が変更されると、変更後の前記演算装置情報に基づいて、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスが前記命令を処理する、
    方法。
  6. 演算装置としてマイクロプロセッサ及びプログラマブルロジックデバイスを有するプログラマブルロジックコントローラのCPUユニットに、接続可能であるコンピュータであって、
    前記コンピュータは、
    ユーザプログラムを記憶する記憶部と、
    前記ユーザプログラム内の命令それぞれを処理する演算装置について、前記マイクロプロセッサ及び前記プログラマブルロジックデバイスのうちのどちらかを選択するユーザの指示を受け付ける受付部と、
    前記ユーザから前記プログラマブルロジックデバイスを選択する指示を受け付けた場合、前記命令に含まれ、前記命令を処理する演算装置を示す演算装置情報を、前記プログラマブルロジックデバイスを示す値で更新し、前記ユーザから前記マイクロプロセッサを選択する指示を受け付けた場合、前記演算装置情報を、前記マイクロプロセッサを示す値で更新する更新部と、
    前記演算装置情報が更新された前記ユーザプログラムを、前記CPUユニットの記憶部に転送する転送部と、
    を備え、
    前記更新部は、
    (i)前記命令を処理する演算装置を選択する第1モードにおいて、前記ユーザが同じ前記命令を前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方が処理することを選択した場合、同じ前記命令の前記演算装置情報をすべて、前記マイクロプロセッサと前記プログラマブルロジックデバイスのうち前記ユーザが選択したいずれか一方を示す値で更新し、(ii)前記命令を処理する演算装置を選択する第2モードにおいて、前記ユーザが前記命令それぞれを処理する演算装置として前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのいずれか一方を個別に選択した場合、前記命令の前記演算装置情報を、前記マイクロプロセッサまたは前記プログラマブルロジックデバイスのうち前記ユーザが個別に選択したいずれか一方を示す値でそれぞれ更新する、
    コンピュータ。
JP2019502024A 2018-03-07 2018-03-07 プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ Active JP6591116B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/008798 WO2019171501A1 (ja) 2018-03-07 2018-03-07 プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、コンピュータ、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP6591116B1 true JP6591116B1 (ja) 2019-10-16
JPWO2019171501A1 JPWO2019171501A1 (ja) 2020-04-16

Family

ID=67846525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019502024A Active JP6591116B1 (ja) 2018-03-07 2018-03-07 プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ

Country Status (5)

Country Link
JP (1) JP6591116B1 (ja)
CN (1) CN111819503B (ja)
DE (1) DE112018007018B4 (ja)
TW (1) TWI701592B (ja)
WO (1) WO2019171501A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001501343A (ja) * 1996-10-01 2001-01-30 ハネウエル・インコーポレーテッド 実時間プロセス制御システムの論理ブロック・パターンを通る信号フローをシミュレートするためのシステムおよび方法
JP2002278606A (ja) * 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
WO2003088095A1 (fr) * 2002-04-17 2003-10-23 Fujitsu Limited Procede de mise au point de circuits integres, support de stockage de programmes contenant un procede de mise au point de circuits integres, systeme de mise au point simultanee d'asic et de circuit logique programmable, et programme et procede de mise au point
JP2006243841A (ja) * 2005-02-28 2006-09-14 Omron Corp Plc用ツール装置
JP2006294005A (ja) * 2005-03-14 2006-10-26 Omron Corp プログラマブル・コントローラ
WO2009038682A1 (en) * 2007-09-21 2009-03-26 Siemens Energy & Automation, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
JP2016212710A (ja) * 2015-05-12 2016-12-15 三菱電機株式会社 ラダープログラム構文解析ツール

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10213860B4 (de) 2001-03-30 2009-01-22 Omron Corporation Programmierbare Steuerung
JP2009251782A (ja) 2008-04-03 2009-10-29 Koyo Electronics Ind Co Ltd プログラマブルコントローラの高速化方法等
JP6443190B2 (ja) * 2015-04-06 2018-12-26 オムロン株式会社 プログラマブルロジックコントローラ、プログラマブルロジックコントローラの制御方法、及び、制御プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001501343A (ja) * 1996-10-01 2001-01-30 ハネウエル・インコーポレーテッド 実時間プロセス制御システムの論理ブロック・パターンを通る信号フローをシミュレートするためのシステムおよび方法
JP2002278606A (ja) * 2001-03-15 2002-09-27 Omron Corp プログラミングツール及び制御装置
WO2003088095A1 (fr) * 2002-04-17 2003-10-23 Fujitsu Limited Procede de mise au point de circuits integres, support de stockage de programmes contenant un procede de mise au point de circuits integres, systeme de mise au point simultanee d'asic et de circuit logique programmable, et programme et procede de mise au point
JP2006243841A (ja) * 2005-02-28 2006-09-14 Omron Corp Plc用ツール装置
JP2006294005A (ja) * 2005-03-14 2006-10-26 Omron Corp プログラマブル・コントローラ
WO2009038682A1 (en) * 2007-09-21 2009-03-26 Siemens Energy & Automation, Inc. Systems, devices, and/or methods for managing programmable logic controller processing
JP2016212710A (ja) * 2015-05-12 2016-12-15 三菱電機株式会社 ラダープログラム構文解析ツール

Also Published As

Publication number Publication date
TW201939273A (zh) 2019-10-01
TWI701592B (zh) 2020-08-11
CN111819503A (zh) 2020-10-23
WO2019171501A1 (ja) 2019-09-12
DE112018007018B4 (de) 2024-05-02
CN111819503B (zh) 2021-08-24
JPWO2019171501A1 (ja) 2020-04-16
DE112018007018T5 (de) 2020-11-05

Similar Documents

Publication Publication Date Title
JP6006399B2 (ja) プログラマブル表示器、そのプログラム
JP6591116B1 (ja) プログラマブルロジックコントローラのcpuユニット、プログラマブルロジックコントローラ、方法、及びコンピュータ
JP5996150B2 (ja) プログラマブル表示器及び作画ソフトウェア
JP5521889B2 (ja) プログラム自動生成装置
JP6625303B1 (ja) 駆動制御装置
US11199993B2 (en) Control system, development assistance device, and development assistance program
EP3118696A1 (en) Programmable controller system
JP2009223471A (ja) シミュレーション・システム
KR101333639B1 (ko) 머신코드 생성 방식을 이용한 원격감시제어장치의 설비 제어방법 및 그 원격감시제어장치
WO2024062548A1 (ja) 設定支援装置、制御システム、設定支援方法及びプログラム
JP6173645B1 (ja) デジタルアナログ変換装置、制御装置、及び制御システム
US11204782B2 (en) Computer system and method for controlling arrangement of application data
US20170003985A1 (en) Procede de configuration et procede de commande d'un systeme de modules d'execution interconnectes
JP4970105B2 (ja) エディタ装置およびエディタプログラム
WO2023157091A1 (ja) 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法
TWI696904B (zh) 顯示控制裝置、顯示系統、顯示裝置、顯示方法以及顯示程式產品
EP3361329B1 (en) Information processing apparatus, system, method and recording medium for generating a user interface
JP2009009314A (ja) エディタ装置、エディタプログラムおよびそれを記録した記録媒体
JP2007171100A (ja) 信号パターン作成装置
KR100396725B1 (ko) 피엘씨 제어명령 단축 입력용 키보드 장치
US20220253289A1 (en) WEB BROWSER BASED DEVELOPMENT PLATFORM FOR CREATING IoT WEB PAGES
JP5330321B2 (ja) プログラマブル表示器
US9720805B1 (en) System and method for controlling a target device
JP2022013144A (ja) 機器操作装置、機器操作システム、コントローラ、および機器操作方法
JP6146277B2 (ja) インバータ制御装置およびその周辺装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190115

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190917

R150 Certificate of patent or registration of utility model

Ref document number: 6591116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250