langEnglish
ホーム > INplc > よくあるご質問(FAQ)
INplcのよくあるご質問(FAQ)
INplcについてよくある質問をまとめました。
最終更新日:2017/06/26 

1-1 INplcとは何ですか? 従来のPLC(シーケンサ)との違いは?
INplcは、リアルタイムOS(INtime)上で動作するソフトウェアPLC製品です。
従来のPLCと同じような使い方ができますが、動作プラットフォームに産業用PCを利用しているという違いがあります。
詳細な特長については、【INplcの特長】をご参照ください。
1-2 開発手順(プログラミング方法など)について記載されているドキュメントはありますか?
プログラムの新規作成から実際にプログラムを実行するまでをご案内する【ユーザーズマニュアル】というドキュメントをご用意しています。
INplc-SDK(開発環境)に含まれる開発ツール【MULTIPROG】には、機能の一つ一つを詳細に解説したヘルプファイルが付属しております。
こちらをご参照いただくことで、【MULTIPROG】の使い方については詳細にご理解いただけます。
1-3 他のPLCのラダープログラムをINplc用に変換できますか?
その機能は未対応となっております。
1-4 lc-SDK Pro+をバージョンアップはできますか?
INplc-SDK 1.70 Pro+ 以降のバージョンをお持ちで有れば可能です。
2-1 PLCの運転開始/停止を行う機能はありますか?
INplc-SDK(開発環境)からは、開発ツール【MULTIPROG】で操作できます。
INplcコントローラ(実行環境)からは、INplc操作パネルで操作できます。
2-2 停止した時のデータを保持して運転開始することはできますか?
ウォームスタートを行うことで、保持データの値をそのまま使用することができます。
ただし、非保持データは初期化されます。 開発ツールでは、[ウォーム]で稼動することにより、ウォームスタートになります。 INplc操作パネルでは、[STOP]→[RUN]を行うことにより、ウォームスタートになります。
2-3 停止した時のデータを初期化して運転開始することはできますか?
コールドスタートを行うことで、全てのデータが初期化されます。
開発ツールでは、[コールド]で稼動することにより、コールドスタートになります。 INplc操作パネルでは、[RESET]→[RUN]を行うことにより、コールドスタートになります。
2-4 モニタ機能はありますか?(開発環境でプログラムやデバイスの状態を読み出す機能)
開発ツールより、モニタリングすることができます。PLCの状態や入出力値などを確認することができます。
2-5 自己診断機能はありますか?(コントローラ自身で異常の有無の診断を行う機能)
SPG(システムプログラム)という機能が実装されています。SPGは、PLCの動作状態にエラーまたは変更が発生すると、PLCオペレーティングシステムが自動的に呼び出すプログラムです。
次のシステム プログラムが使用できます。
SPG 意味
ウォーム スタート ウォーム スタート時に実行されます。
コールド スタート コールド スタート時に実行されます。
ホット スタート ホット スタート時に実行されます。
停止(Stop) プログラムの実行が停止したとき実行されます。
ウォッチドッグエラー タスクの実行がウォッチドッグ タイム内に終了しないと、実行されます。
CPUオーバーロード CPUのオーバーロードが発生すると実行されます。
文字列操作エラー 文字列操作でエラーのとき、たとえば文字列の置き換え時に置き換え文字列がないときに実行されます。
配列境界エラー 配列または構造体の範囲を超えると実行されます。
0除算エラー プログラム実行中にゼロによる除算が発生すると、実行されます。
スタック オーバーフローエラー スタック オーバーフローが発生すると実行されます。
ブルー スクリーンエラー [ブルー スクリーン] が発生し、Windows内部の問題かまたは「不良ドライバ」 コンポーネントのためにクラッシュすると実行されます。
2-6 故障履歴機能(自己診断結果を故障履歴としてメモリに格納しておく機能)はありますか?
ログ機能を実装しています。エラーや変更等をファイルに保存します。
INplc運用ツールまたはINplc操作パネルから閲覧することができます。
2-7 PLCの電源がOFFになった場合に、デバイスのデータを保持する機能はありますか?
リテイン機能を実装しています。
プログラム開発時に[リテイン変数]として設定することで、データを保持することができます。
2-8 ウォッチドッグタイマ機能はありますか?(ハードウェア、プログラム異常などによる演算渋滞を監視する機能)
タスクの設定で指定できます。(ms単位)
また、システムタスクを使用することにより、ウォッチドッグを検知して任意の処理を行うことができます。
※ SYSTEMタスクには、ウォッチドッグタイマ機能は使用できません。
2-9 1スキャン目のみビットをONして、次のスキャンからビットをOFFする機能はありますか?(システム立ち上げ時によく使用する)
個別にその機能を持つファンクションブロックを作成するなどの対応をしていただくことになります。
2-10 INplcで利用可能なタスクとは何ですか?
INplcではPLCの国際標準規格IEC61131-3に則った4種類のタスクを扱うことができます。
作成したプログラムは、このタスクに割り付けることで、任意のタイミングで実行されます。
4種類のタスクの特長は以下の通りです。

タスク 動作 周期
サイクリックタスク 周期的に実行されるタスク 0.1ms~
イベントタスク 外部I/Oからの割り込み信号や外部プログラムからの割り込みイベント通知などで実行されるタスク 割込みイベント
デフォルトタスク 常時繰り返し実行されるタスク 0.5ms
システムタスク PLCシステムからのイベント通知で実行されるタスク 割込みイベント

※利用可能なタスク数上限は、INplc-SDKのエディションによって異なります。
2-11 DEFAULTタスクの動作について教えてください。
※ INplc v2.Xに関する内容

DEFAULTタスクは他のタスクが起動していないタイミングで動作するタスクです。DEFAULTタスクの動作タイミングはシステム時間(INplcが動作する最小タイミング)に依存します。INplcのシステム時間は250μsecです。
DEFAULTタスクは1スキャンの処理が終了した後、その処理時間に応じた待機時間が発生します。 待機時間終了後、次のシステム時間からDEFAULTタスクが動作します。

下記にDEFAULTタスクの動作例を示します。

 基本的な動作
処理時間が250µs未満の場合でも、必ず2tick分(250µs~500µs未満)の待機時間が発生します。

● 処理時間 =250µs未満(= 1tick未満)のイメージ
処理時間=250µs未満(=1tick未満)のイメージ

● 処理時間 = 2000µs(= 8tick)のイメージ
処理時間=2000µs(=8tick)のイメージ

 1スキャンの処理時間が9tick(2250µs)以上の場合の動作
待機時間は、処理時間[tick]の3分の1の割合で動作します。

● 処理時間 = 2250µs(= 9tick)のイメージ
※ 待機時間は、750µs(= 3tick)となります。
処理時間=2250µs(=9tick)のイメージ

 DEFAULTタスク+CYCLICタスクの動作
CYCLICタスクはDEFAULTタスクよりもプライオリティが高いので、DEFAULTタスクより優先的に動作します。
DEFAULTタスク+CYCLICタスクの動作
2-12 500μsec周期のEVENTタスク動作は可能か?
はい。可能です。
なお、EVENTタスクの負荷が非常に高くなると、他タスクの処理が待たされ、ウォッチドッグエラーが発生する可能性があります。
EVENTタスクを利用する場合には、他タスクに影響がでないようなEVENT発生周期、処理内容を事前によく検討して実装してください。
500μsec周期のEVENTタスク動作
INtimeアプリケーションからイベントタスクのへイベントを発行する方法については技術情報をご参照ください。
2-13 タスクのスイッチングについて
INplcのタスク(DEFAULT、CYCLIC、EVENT、SYSTEM)のスイッチング性能はご使用になられるハードウェアによって左右されます。
即ちターゲットとする INplcコントローラ の性能によりタスクスイッチング時間が変わってきます。

弊社では、各工業用コンピュータメーカ様やパートナー各社様のご協力を得て、各社様製品に対してINtimeでの動作検証と性能データ測定を行い、公開しております。

この評価の中で、「リアルタイムスレッド切替性能計測」としてタスクのスイッチング(資料ではスレッドスイッチング)の時間も計測しております。
一例として、 CONTEC製の「SPF14MQ450 プリインストールモデル」(Core2Duo 3.0GHz)では、平均のスレッド切替時間は0.28μsです。
Atomプロセッサを搭載した省力タイプのAVAL DATA CORPORATION製「ACP-127 プリインストールモデル」(AtomZ510 1.1GHz)では、平均のスレッド切替時間は6.77μsです。
2-14 FL-netなどの通信先やデバイスの異常を検知できますか?
現在、異常を検知する機能は実装されておりません。
※ 次期バージョンで実装予定です。
2-15 EtherCATスレーブは、何台まで接続可能ですか?
スレーブは、最大65,535台まで接続することができます。
ただし、INplcで取り扱える最大データ数は、入力:65,532Byte、出力:65,532Byte分となります。
16点デジタル入力スレーブの場合、32,766台分使用できます。(全点使用する場合)
2-16 Iエリア・Qエリア・Mエリアの情報(データ)を収集できる機能はありますか?
現在、各メモリ領域の情報を収集する機能は実装されておりません。
ただし、各メモリ領域は ProConOS プロセスにカタログされておりますので、下記のいずれかの方法でメモリの情報を参照することが可能です。
  • INtime Explorerのメモリダンプ機能を利用する
  • ユーザーアプリケーションプログラムからマップして参照する
各メモリ領域のカタログ名は、以下のとおりです。
Iエリア ProConOSプロセス内 [PRO_INPUT]
Qエリア ProConOSプロセス内 [PRO_OUTPUT]
Mエリア ProConOSプロセス内 [PRO_MAREA]
※ 各メモリ領域の更新タイミングによって、データの競合が発生する場合があります。また、参照したメモリ情報がタスク処理中の内容と一致する保障がないことを、あらかじめご了承ください。
2-17 変数や接点/コイルが割当てられる領域について
変数や接点/コイルは、I/Oアドレスや保持/非保持(リテイン有無)の設定により、次のメモリ領域に割当てられます。

◆ INplc v2.01~
領域 I/Oアドレスの
設定 
領域サイズ[Byte] 領域範囲超過時の
挙動 
備考
非保持 保持
データ領域 変数
ユーザー領域
%M
(セクション0)
20,000 512 ビルド時にエラー I/Oアドレスに [% Mのセクション 0]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 IO_Configuration の VARCONFに定義を追加する必要があります。
システム領域 - なし - 129,998 512 ビルド時にエラー I/Oアドレスに指定のない変数が割当てられる領域です。
Mエリア 共有メモリ領域
(PRO_MAREA)
%M
(セクション3)
614,400 - ①ダウンロード゙時にエラー。
②ProConOSページ違反。(ロジック内で変数未使用時)
I/Oアドレスに [% Mのセクション 3]のアドレスを指定した変数が割当てられる領域です。
Iエリア 入力信号領域
(PRO_INPUT)
%I 65,532 - ダウンロード時にエラー I/Oアドレスに [% I]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの INPUTに定義を追加する必要があります。
Qエリア 出力信号領域
(PRO_OUTPUT)
%Q 65,532 - ダウンロード時にエラー I/Oアドレスに [% Q]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの OUTPUTに定義を追加する必要があります。

メモリ領域

◆ INplc v2.10~
領域 I/Oアドレスの
設定 
領域サイズ[Byte] 領域範囲超過時の
挙動 
備考
非保持 保持
データ領域 変数
ユーザー領域
%M
(セクション0)
20,000 512 ビルド時にエラー I/Oアドレスに [% Mのセクション 0]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 IO_Configuration の VARCONFに定義を追加する必要があります。
システム領域 - なし - 129,998 512 ビルド時にエラー I/Oアドレスに指定のない変数が割当てられる領域です。
Mエリア 共有メモリ領域
(PRO_MAREA)
%M
(セクション3)
16,777,215 - ①ダウンロード゙時にエラー。
②ProConOSページ違反。(ロジック内で変数未使用時)
I/Oアドレスに [% Mのセクション 3]のアドレスを指定した変数が割当てられる領域です。
Iエリア 入力信号領域
(PRO_INPUT)
%I 65,532 - ダウンロード時にエラー I/Oアドレスに [% I]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの INPUTに定義を追加する必要があります。
Qエリア 出力信号領域
(PRO_OUTPUT)
%Q 65,532 - ダウンロード時にエラー I/Oアドレスに [% Q]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの OUTPUTに定義を追加する必要があります。

メモリ領域

◆ INplc v3.00~
領域 I/Oアドレスの
設定 
領域サイズ[Byte] 領域範囲超過時の
挙動 
備考
非保持 保持
データ領域 システム領域 - なし - 10,000,000 262,144 ビルド時にエラー I/Oアドレスに指定のない変数が割当てられる領域です。
Mエリア 共有メモリ領域
(PRO_MAREA)
%M
(セクション3)
33,554,432 - ①ダウンロード゙時にエラー。
②ProConOSページ違反。(ロジック内で変数未使用時)
I/Oアドレスに [% Mのセクション 3]のアドレスを指定した変数が割当てられる領域です。
Iエリア 入力信号領域
(PRO_INPUT)
%I 16,777,215 - ダウンロード時にエラー I/Oアドレスに [% I]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの INPUTに定義を追加する必要があります。
Qエリア 出力信号領域
(PRO_OUTPUT)
%Q 16,777,215 - ダウンロード時にエラー I/Oアドレスに [% Q]のアドレスを指定した変数が割当てられる領域です。この領域を使用するには、 I/Oドライバを適用したあとIO_Configurationの OUTPUTに定義を追加する必要があります。

※1 ・・・ INplc v3.00以上では、変数ユーザー領域をサポートしておりません。
※2 ・・・ INplc v3.00以上のシミュレーション機能では、変数ユーザー領域および共有メモリ領域をサポートしておりません。
2-18 電源遮断時に保持出来るメモリーデータ(Iエリア/Qエリア/Mエリア)について
メモリーデータデータは変数のリテイン機能同様にINplcコントローラがWindowsシャットダウンを検知したタイミングで保持する事が出来ます。
機能は「INplc Ver.3.01」から実装されておりINplcコントローラの「c:\INplc\ProConOS.ini」で指定する事でブロック単位で必要な部分をだけを保持する事が出来ます。
※電源断でWindowsシャットダウン実行されない場合のデータの保存が出来ませんのでUPSを使用し保存の時間を確保する必要が御座います。

●データ保存タイミング
INplcコントローラのWindowsシャットダウンを検知したタイミングで保存

●データ読み込みタイミング
INplcコントローラが起動したタイミングでファイルを読込みメモリへ展開
3-1 ラダーの接点の総数はいくつですか?
INplcのプロジェクト制限値については FAQ 4-13 をご参照ください。
3-2 マルチタスク(最大16タスク)とありますが、各タスクに優先度(プライオリティ)を設定できますか?
タスクの設定でプライオリティを割り当てることができます。
最高プライオリティは [0]、最低プライオリティは[31]です。最高プライオリティのタスクが最初に呼び出されます。
※ SYSTEMタスク、DEFAULTタスクには、設定できません。
タスクのプライオリティ
3-3 PLCの制御周期が1msとありますが、タスク毎に変更できますか?
タスク毎に指定できます。設定値の有効範囲は、1 ~ 32767 msです。
※ CYCLICタスクのみの設定です。
タスクの周期
3-4 ST言語とLD言語を同時に使用できますか?STからLDの接点へ出力することはできますか?
1つのプロジェクトの中で、タスク毎に違う言語を使用することは可能です。2つのプログラムにおいて、片方のプログラム(ST言語)が、もう1つのプログラム(LD)のローカル接点への入出力はできませんが、グローバル変数を使用することで実現可能です。
また、プログラムの中で違う言語の文法を使用することはできませんが、ST言語で記述されたファンクションブロックをLD言語のプログラムで使用することは可能です。

言語の混合
3-5 他のアプリケーション(C言語プロセス)から、INplcの接点を読み書きすることは可能ですか?複数行う場合でも、負荷なく容易にできますか?
[INpMac]コンポーネントを使用することで、INplcとのデータ交換が可能です。
DLLおよびOCXで提供していますので、VBなどからも用意にINplcとのデータ交換を行うことができます。
※ INpMacは、INplcのインストールCDに含まれています。
3-6 PLCでエラーが発生した時に処理の継続/停止の指定はできますか?
エラーが発生した場合、処理は停止するようになっています。
処理を続行したい場合、SYSTEMタスクでエラーを検知し、その中でファンクション[CONTINUE]※1を使用することで可能となります。
※1 標準提供のファームウェアライブラリ[ProConOS]に収録されています。
3-7 PLCが運転中(RUN状態)にONしているビットを設定したい場合どうすればよいですか?(RUN/STOPを検知して処理を行いたい)
SYSTEMタスクを使用して、STARTとSTOPを検知し、任意の処理を行うことができます。 STARTを検知した際にビットをONにし、STOPを検知した際にビットをOFFする処理を行うことで実現できます。また、RUN状態を示す「PLCMODE_RUN」がグローバル変数として標準で定義されています。
3-8 停止した時に、拡張ユニットの出力を停止できますか?(DOの場合、全点OFFにする)
SYSTEMタスクを使用して、STOPを検知し、任意の処理を行うことができます。 STOPを検知した際に、任意の出力の値をOFFにすることで実現できます。また、INplc運用ツールからSTOP時の出力設定を行うことができます。(この処理は、使用しているI/Oドライバの全出力をクリアする機能です)
3-9 1つのハードウェア(コントローラ)で、INplcを2つ動作できますか?
現在、ハードウェア1つに対して動作可能なINplcは1つとなっています。
3-10 MULTIPROGのIO_Configurationの項目にあるリフレッシュ方式について教えてください。
リフレッシュ方式について


■ タスクによる
タスク実行時の最初と最後に、I/O値が自動的に更新されます。
ユーザ側で特に操作を行う必要はありません。

■ 手動 <INplc2.XXまでのバージョンのみ使用可能>
I/O値の更新は自動的に行われません。
必要に応じて、ユーザ側プログラム内で更新を行う必要があります。 具体的には、RD_INPUT_GROUPファンクションブロックで入力値の更新、WR_OUTPUT_GROUPファンクションブロックで出力値の更新が行われます。MULTIPROGヘルプ「標準FB/FUのヘルプ」内「ProConOSファンクションブロック」に簡単ではありますが説明がありますので御参照いただければと思います。
※RD_INPUT_GROUPファンクションブロックはINplc3.0~は使用出来ない機能ですのでご注意ください。
3-11 INplc I/O空間について
次にINplcに実装されている INPUT・OUTPUTの空間について解説します。

I/O空間
I/Oコンフィグレーション
INPUTエリアのアドレス構成は、左図のI/Oコンフィグレーションで決定されます。

I/Oコンフィグレーションは、1度に複数のデバイスをサポートできるよう、I/Oグループを複数設定することができます。

また、通常のデバイスは1デバイス1個のI/Oグループ設定となりますが、デバイスによっては、1デバイスでN個のI/Oグループを持つことができるものも存在します(CC-LINK IE等)。
I/O設定プロパティ
I/Oグループの設定は、左図のプロパティダイアログで行います。 設定にはモジュールの論理アドレス範囲(開始~終了)の設定、ボードI/Oモジュールの設定があります。
物理アドレスと論理アドレスの関係
左図はデバイスの物理アドレスと論理アドレスの関係を示した図です。

ポイントは、物理アドレスと論理アドレスは異なる点です。

論理アドレスは、INplcの入力エリアの通しのアドレスです。実際のデバイスの物理アドレスとは異なる点に留意してシステム設計します。

3-12 "%M"でアクセスする。【PLCメモリ領域】について
"%M"でアクセスできる領域は、【PLCメモリ領域】と呼ばれる領域です。
PLCメモリ領域は、次の[セクション0 ~ 3]のそれぞれ独立したメモリ空間で構成されています。

セクション番号 内容 備考
 0 変数ユーザー領域(※3,※4) PLCプログラム内でデータ(変数や接点/コイル)の保持や共有に使用する領域です。ユーザーがPLCプログラム作成時に、IO_ConfigurationのVARCONFにて使用する領域を確保し、変数や接点/コイルのI/Oアドレスに割り当てて使用します。
確保できる領域のサイズは、最大[20,000 Byte]です。
最大アクセス範囲(BITアクセス時)は【%MX0.0 ~ %MX19999.7】(※1)となります。
 1 システムメモリ領域 システムで予約された領域です。データの参照のみ可能です。
参照可能なデータは、あらかじめグローバル変数として定義されています。
 2
 3 共有メモリ領域(※4)
(Mエリア)
PLCプログラムのデータをユーザーアプリケーション(INtimeアプリケーションまたはNTXアプリケーション)(※2)と共有するための領域です。ユーザーがPLCプログラム作成時に変数や接点/コイルのI/Oアドレスに割り当てて使用します。
■ INplc v2.01~:
領域のサイズは、[611,400 Byte(600 KByte)]です。
最大アクセス範囲(BITアクセス時)は【%MX3.0.0 ~ %MX3.614399.7】となります。
■ INplc v2.10~:
領域のサイズは、[16,777,215 Byte(16 MByte)]です。
最大アクセス範囲(BITアクセス時)は【%MX3.0.0 ~ %MX3.16777214.7】となります。
■ INplc v3.00~:
領域のサイズは、[33,554,432 Byte(32 MByte)]です。
最大アクセス範囲(BITアクセス時)は【%MX3.0.0 ~ %MX3.33554431.7】となります。

※ 共有メモリ領域(Mエリア)についての説明は FAQ 6-6 をご覧ください。
※1 ・・・ セクション番号が[0]の場合のみ、アドレスのセクション部の記述を省略することができます。
※2 ・・・ ユーザーアプリケーション(INtimeアプリケーションまたはNTXアプリケーション)を作成するためには【INtime-SDK】(別売)が必要です。
※3 ・・・ INplc v3.00以上では、このメモリ領域をサポートしておりません。
※4 ・・・ INplc v3.00以上のシミュレーション機能では、このメモリ領域をサポートしておりません。
● 以下の内容についても合わせてご覧ください。
2-17 変数や接点/コイルが割当てられる領域について
3-13 ネットワークデバイスを使用したI/OまたはFWLで、遅延が発生する現象について
Legacy NetworkではIPのヒープサイズが問題になることが多いです。デフォルトのIPヒープサイズ(IP-BUFHEAPSIZE)は0x200(512)とされています。このサイズはインターフェース(ネットワークデバイス)ひとつを想定しているとすると、複数のインターフェースを設定した場合、IPのバッファヒープが一時的に足りなくなり、処理に遅延が出ることも想定されます。
設定の変更については、「23-17 適切なネットワークリソース設定について」を参照してください。

23-17 適切なネットワークリソース設定について
3-14 2-26 Mエリア(%Mセクション3)に対して同一PC上のWindowsアプリケーションからアクセスできますか?
Mエリアに対し同一PC上のアプリケーションプログラムからアクセスすることができます。
※Mエリアを参照するユーザーアプリケーション(INtimeアプリケーションまたはNTXアプリケーション)を作成するためには【INtime-SDK】(別売)が必要です。

■ Mエリアについての参考情報
以下FAQにはMエリアについての情報が記載されております。
Mエリアアクセス時の参考としてご覧ください。
FAQ 6-6
FAQ 3-12
FAQ 2-17
3-15 BSOD検知時の動作について
BSOD発生時の動作は2パターンあります。
 パターン1:BSODをイベントで検知しBSODに対する処理を行う。
 パターン2:BSODが発生してもイベントは発行せず処理を継続する。

パターン1:BSODをイベントで検知しBSODに対する処理を行う。
BSODが発生した場合、処理は停止します。
処理を続行したい場合、SYSTEMタスクでエラーを検知し、その中でファンクション[CONTINUE]※1を使用することで処理の継続が可能となります。
※1 標準提供のファームウェアライブラリ[ProConOS]に収録されています。

下記の設定を行って下さい。

 1.プログラム→INtime→INtime Configurationで設定ツールを起動してください。
 2.設定するコンポーネントとしてNode Managementを選択してください。
INtime Configuration

 3.Windowsバグチェック例外(BSOD)トラップ設定を「Windowsバグチェック例外(BSOD)をトラップ」を選択し「保存」ボタンで設定を保存してください。
Windowsバグチェック例外(BSOD)トラップ設定

 4.MULTIPROGのプロジェクトでSPG24のシステムタスク内でBSODに対する処理を行ってください。

パターン2:BSODが発生してもイベントは発行せず処理を継続する。
BSODが発生してもイベント発行は行われません。
【注意】
 BSODが発生するとPCの再起動までファイルIOが使用出来なくなりますのでご注意ください。
下記の設定を行って下さい。

 1.プログラム→INtime→INtime Configurationで設定ツールを起動してください。
 2.設定するコンポーネントとしてNode Managementを選択してください。
INtime Configuration

 3.Windowsバグチェック例外(BSOD)トラップ設定を「Windowsバグチェック例外(BSOD)をトラップしない」を選択し「保存」ボタンで設定を保存してください。
Windowsバグチェック例外(BSOD)トラップ設定

4-1 ラダー図を別プロジェクトからコピー&ペーストすることはできますか?
ラダー図のコピー&ペーストは可能です。それは1つのプロジェクトの中にある複数のラダー図、1つのPCで複数起動されたINplc-SDKでも可能です。
コピー&ペーストをする手順も、通常のWindows®のエディタと同じく、コピーしたい範囲を選択して右クリックメニューのコピーを選択、または、キーボードの[Ctrl] + [C]のいずれの方法にも対応しておりますので、感覚的にラダー図のコピー&ペーストを行っていただけます。

コピー&ペースト
4-2 ラダー図にラインコメントは書けますか?
グラフィック ワークシートのどの場所にも挿入できます。
コメントは、括弧【( )】とアスタリスク【*】で囲みます。他のオブジェクトと重ねて配置することも可能です。グラフィック ワークシートのコメントは、[コメント] ダイアログを使って挿入します。このダイアログで、テキストを入力し、使用するフォントを選択できます。
さらに、LD 回路の左母線または SFC のステップに固定してコメントを自動挿入できます。コメントにはプログラム上の意味はありませんが、今後このプログラム部分を理解するために非常に役立ちます。

コメント
4-3 ファンクションブロックなどに定数を設定するためにはどうすればよいですか?
ファンクションブロックなどに定数を設定するためには、定数を設定したい入力パラメータで右クリックして[変数]を選択してください。
ファンクションブロック
「変数のプロパティ」ダイアログが開かれますので、「名前」にセットしたい定数のデータ型と値を「#」記号を挟んで入力してください。
変数のプロパティ
「TIME型の5秒」の定数を設定したい場合は、図のように「TIME#5s」と入力してください。

TIME型などのデータ型の詳細については、MULTIPROGのヘルプ [IEC 61131の基本] > [IEC 61131のデータ型] > [基本データ型] を参照してください。
入力可能はデータの範囲、初期値などが記載されています。
4-4 変数名は大文字/小文字を区別しますか?
入力は可能ですが、表示だけの違いで認識は同一です。
4-5 変数名にカタカナを指定できますか?
日本語環境であれば、カタカナ、ひらがな、漢字を使用できます。
4-6 ダブルコイルチェック機能はありますか?
現在、チェックはしていません。(コンパイルエラーにはなりません)
4-7 ラダー図の整列はできますか?
拡張編集機能にて右母線に合わせて整列可能です。
4-8 独自の数値演算や比較器などを作成して使用することはできますか?
ファンクションまたはファンクションブロックを作成することで実現できます。
標準で提供されているファンクションブロックを組み合わせて独自の演算、比較を行うファンクションブロックを作成し、プログラムで呼び出すことで使用できます。
また、作成する際の言語は、IEC 61131-3対応の5つの言語(IL,ST,LD,FBD,SFC)であれば、どの言語でも使用することができます。

自作FU/FB
4-9 ラダーの編集がすぐに更新されません。画面の更新が遅い時があります。
リソースダイアログが立ち上がっているとINplcとのやりとりを行っているため、画面の更新処理などが安定しない場合があります。編集中はリソースダイアログは閉じておくことをお勧めします。
4-10 接点やファンクションなどのオブジェクトを挿入しても、画面に反映されないときがあります。
オブジェクトが入るスペースを確保してから挿入するようにしてください。
4-11 開発ツールの画面が文字化けします。(Windows Embedded環境)
XPE環境にて開発ツールの画面が文字化けする場合は、下記のレジストリ情報の追加・修正を行ってください。
※日本語版 MUI 環境に対しての設定です。他の言語環境に対しては適用しないで下さい。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize]
"GUIFont.Facename"="MS UI Gothic"
"GUIFont.Height"=dword:0000000a
"GUIFont.CharSet"=dword:00000080
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\EUDCCodeRange]
"932"="F040-F9FC"
"Unicode"="E000-F8FF"
4-12 同じロジックで、入出力先が違うプログラムは用意に作成できますか?
実現する方法は二つあります。

1.I/Oアドレスを設定したグローバル変数をエクスポートし、テキストファイルでアドレスを編集して、インポートする
この方法は同じプログラムを複製しますが、テキストによりI/Oアドレスの管理を 容易に出来ます。
まず、同じプログラムをコピーで複製します。その後グローバル変数を 各プログラム分作成し、それぞれのプログラムにグローバル変数を割付けます。 そして、それらのグローバル変数のIOアドレスをテキストファイルで一括変更を行うことで、同じプログラムのI/Oアドレスを変更することが出来ます。

2.共通のロジックをファンクションブロックにまとめ、ファンクションブロックの引数にI/Oアドレスの違う引数を与えることでI/Oアドレスを変更する
この方法は、プログラムを複数作成しますが、プログラムの共通のロジックを ファンクションブロック化することにより、プログラムを単純化し、変更する点を少なくすることが出来ます。
まず、共通のロジックをファンクションブロックにまとめます。その後タスクに割り付ける複数の プログラムを作成し、それぞれのプログラムにファンクションブロックを貼り付け、引数にI/Oアドレスを割り付けた変数を渡すことでI/Oアドレスの変更が出来ます。
4-13 プログラム開発環境のプロジェクト制限はありますか?
次の表では1つのプロジェクト内で有効な制限を示しています。 この表の下の該当注意事項も参照してください。

■ INplc v2 以前
項目 制限
プロジェクトツリーのノード 8000
プロジェクト ツリーのコンフィグレーション 100
プロジェクトツリーのリソース 100
1 リソースのプログラムインスタンス 1000
1 リソースのタスク 16
1 タスクのプログラムインスタンス 500
グローバル変数 15000
1 POU のローカル変数 15000
ファンクションとファンクションブロックの I/O パラメータ数 300
登録ライブラリ 61
ライブラリの POU 1000
含まれているライブラリからの POU の ない プロジェクト内の POU 1000
ライブラリからの POU を 含む プロジェクト内の POU 2000
POU 毎のコードワークシート 255
1 POU の変数グリッドワークシート 1
1 リソースのグローバル変数グリッドワークシート 1
1 FB インスタンスのグローバル変数グリッドワークシート 1
1 リソースごとに、自分のグローバル変数ワークシート をもつ PG と FB インスタンス (VAR_GLOBAL_PG/FB) 199
1 POU の異なる型のファンクションと FB の合計数 620 (注 2,3 参照)
1 POU の同じ型のファンクションと FB の合計数 1024 (注 2,3 参照)
1 POU のジャンプとラベル 750 (注 2,3 参照)
1 POU のジャンプとリターン 20 (注 2,3 参照)
1 POU の SFC ステップ 750
1 POU の SFC トランジション 1024
プロジェクトツリーの SFC トランジション詳細 256
プロジェクトツリーの SFC アクション詳細 350
1 コードワークシートの SFC アクション 600
1 POU の接点 / コイル 3600
ファンクション / FB のネスティング 128
ユーザ定義のデータ型のネスティングレベル 10
ユーザ定義データ型 1024
構造内の要素 1000
配列内の要素 32767
FOR / CASE / IF ネスティングレベル 30
I/O グループ 200 (注 2,3 参照)
オンラインウィンドウを開きます 30
1 プログラムインスタンスのグローバル PG 変数 2000 (注 1,2,3 参照)
外部 PG 変数 2000 (注 2,3 参照)
POU グループのネスティングレベル 6
変数名の (文字の) 長さ 30
文字列定数の (文字の) 長さ 255
ST 文のネスティングレベル 8
1 POU のデータインスタンス 1024 (注 2,3,4 参照)
1 プロジェクトのデータインスタンス 16000 (注 2,3,4 参照)

1) 実際の制限値はPLCタイプによって異なります。
2) 実際の制限値は、ここでの記載より高い場合があります。また、リソースの設定(データ領域)によって異なります。
3) 実際の制限値は、作成したプログラムの容量によって異なります。
4) データインスタンスとは、該当するPOU(プログラム・ファンクション・ファンクションブロック)が他のPOUやタスクなどに使用されている回数のことです。
■ INplc v3
項目 制限
Express Pro+
プロジェクトツリーのノード 8000
プロジェクト ツリーのコンフィグレーション 1 100
プロジェクトツリーのリソース 1 100
1 リソースのプログラムインスタンス 15 1000
1 リソースのタスク 5 16
1 タスクのプログラムインスタンス 15 500
グローバル変数 5000 100000
1 POU のローカル変数 1500 16000
ファンクションとファンクションブロックの I/O パラメータ数 300
登録ライブラリ 61
ライブラリの POU 1000
含まれているライブラリからの POU の ない プロジェクト内の POU 1000
ライブラリからの POU を 含む プロジェクト内の POU 250 2000
POU 毎のコードワークシート 255
1 POU の変数グリッドワークシート 1
1 リソースのグローバル変数グリッドワークシート 1
1 FB インスタンスのグローバル変数グリッドワークシート 1
1 リソースごとに、自分のグローバル変数ワークシートをもつPGとFBインスタンス(VAR_GLOBAL_PG/FB) 199
1 リソースに対する異なる種類のファンクションと FB の合計数 900 -
1 POU の異なる型のファンクションと FB の合計数 620 (注 2,3 参照)
1 POU の同じ型のファンクションと FB の合計数 1024 (注 2,3 参照)
1 POU のジャンプとラベル 750 (注 2,3 参照)
1 POU のジャンプとリターン 20 (注 2,3 参照)
1 POU の SFC ステップ 750
1 POU の SFC トランジション 1024
プロジェクトツリーの SFC トランジション詳細 256
プロジェクトツリーの SFC アクション詳細 350
1 コードワークシートの SFC アクション 600
1 POU の接点 / コイル 3600
ファンクション / FB のネスティング 128
ユーザ定義のデータ型のネスティングレベル 10
ユーザ定義データ型 1024
構造内の要素 1000
配列内の要素 32767
FOR / CASE / IF ネスティングレベル 30
I/O グループ 200 (注 2,3 参照)
オンラインウィンドウを開きます 30
1 プログラムインスタンスのグローバル PG 変数 2000 (注 1,2,3 参照)
外部 PG 変数 2000 (注 2,3 参照)
POU グループのネスティングレベル 6
変数名の (文字の) 長さ 30または24
文字列定数の (文字の) 長さ 255
ST 文のネスティングレベル 8
1 POU のデータインスタンス 1024 (注 2,3,4 参照)
1 プロジェクトのデータインスタンス 16000 (注 2,3,4 参照)
1 POU の最大データ 8MB (注 2 参照)

1) 実際の制限値はPLCタイプによって異なります。
2) 実際の制限値は、ここでの記載より高い場合があります。
3) 実際の制限値は、作成したプログラムの容量によって異なります。
4) データインスタンスとは、該当するPOU(プログラム・ファンクション・ファンクションブロック)が他のPOUやタスクなどに使用されている回数のことです。
4-14 CASE文のように、処理の分岐はできますか?
可能です。
IL/LD/FBD言語では、ラベルとジャンプを使用することで処理の分岐が実現可能です。
ST言語(※)では、CASE文が用意されています。
※ ST言語は、INplc-SDK(PRO)及び(PRO+)でサポートする言語です。INplc-SDK(Basic)ではご利用いただけません。
以下のサンプルプロジェクトを参考にしてください。

サンプル概要: 1秒毎に以下の処理を繰り返します。
1スキャン目 : 出力ビット0をON ○ ●
1スキャン目 : 出力ビット1をON ● ●
1スキャン目 : 出力ビット0,1をOFF ○ ○
:
:
:
4-15 任意のタイミングで、処理(タスク)を実行できますか?
可能です。
PROCONOS.FWLのFB「EVENT_TASK」を使用することにより、任意のタイミングでイベントタスクを起動することができます。

以下のサンプルプロジェクトを参考にしてください。

サンプル概要: 入力ビットの立上りを検知してイベントタスクを起動します。
入力ビット0をON : EVENT NO.0のタスクを起動 (出力ビット0をON) ○ ●
入力ビット1をON : EVENT NO.7のタスクを起動 (出力ビット1をON) ● ●
入力ビット2をON : EVENT NO.15のタスクを起動 (出力ビット0,1をOFF) ○ ○
:
:
:
4-16 ジャンプ機能を使用しないIF文やCASE文を記述できますか?
下記のラダープログラムは、C001変数の値を比較し、合致した条件で該当リレーのSETを行う例です。

判定・分岐
4-17 1スキャン目のみビットをONして、次のスキャンからビットをOFFする機能はありますか?(システム立ち上げ時によく使用する)
下記の図は、POUの変数C001が、RUN時に一度だけONします。

1スキャン実行処理
4-18 シミュレーション機能をご利用いただく際の[ドライバ名]について
シミュレーション機能を利用する際の[ドライバ名]は、エディションにより異なります。
下記に[ドライバ名]を示します。

INplc-SDK Pro+   の場合のドライバ名は SIMIO 、
INplc-SDK Basic の場合のドライバ名は DEMOIO になります。

INplc-SDK Pro+ でシミュレーション利用時のドライバ名
図.INplc-SDK Pro+ でシミュレーション利用時のドライバ名

INplc-SDK BASIC でシミュレーション利用時のドライバ名
図.INplc-SDK BASIC でシミュレーション利用時のドライバ名

※補足
INplc-SDK Basic で作成したプロジェクトを INplc-SDK Pro+ で開く際には、[ドライバ名]を 'DEMOIO' から 'SIMIO'に変更し、[リソース設定]-[ポート]を 'COMx' または 'DLL' に一度設定してダイアログを確認し、再度、[ポート]を元のシミュレーション('1' または '2')に戻します。
4-19 ある接点がONの時のみ、ファンクションを実行することはできますか?
[EN/ENO 付きファンクション]の設定をONにすることで、パラメータに 条件設定 EN/ENO のあるファンクションが挿入できるようになります。
入力パラメータ EN に TRUE が入力されたときにファンクションが実行されます。
ファンクションが正常終了すると、出力パラメータ ENO から TRUE が出力されます。


【設定方法】

[拡張]メニューの [オプション] を選択してオプションダイアログを開きます。

オプションダイアログ


[グラフィックエディタ] タブにある[EN/ENO 付きファンクション] のチェックを ON にすることで、その後に挿入したファンクションに パラメータ(EN、ENO)が追加されます。

EN/ENO 付きファンクション
4-20 構造体変数をLDで使用するには、どうすればいいですか?
①データ型で構造体を作成してください。
構造体を作成

②作成した構造体型の変数を作成してください。
変数を作成

③構造体メンバーを割り付けたい接点/コイル、変数をダブルクリックしてください。
割付1

④名前の選択一覧から構造体変数を選択する。
割付2

⑤選択した構造体変数名の後に「.」を入力すると構造体のメンバ一覧が表示されるので、割り付けたい構造体変数のメンバを選択してください。
割付3

⑥通常の変数と同様に使用する事ができます
完成
4-21 構造体変数をメモリに読書きするには、どうすればいいですか?
ProConOSファンクションのMEMCPYファンクションまたはIMEMCPYファンクションを使用して下さい。
IMEMCPYファンクション

※ProConOSファンクションを使用するには、ライブラリ追加でProConOSファンクションのライブラリを追加してください。
4-22 PLC プログラム実行時に、VARCONF に確保するバッファのサイズを変更することはできますか?
VARCONFのサイズは動的に変えることはできません。
PLCプログラム開発時に必要なサイズを設定してください。
4-23 PLC プログラム実行時に、変数に割り付けたI/O アドレス(I, Q, M )を変更することはできますか?
I/Oアドレスを動的に変更することはできません。
4-24 変数のアドレス操作はできますか?(ある変数のI/O アドレス+2 バイト目にデータ入れる等)
INplcの開発ツールではアドレス操作はできません。
ただし、単純に【I/Oアドレス+任意のバイト目のデータの参照/変更】であれば、BYTE型配列にI/Oアドレスを設定して使用することで実現できます。
4-25 ファンクションブロックのVAR_IN_OUT 型の出力を他ファンクションブロックの入力に繋ぐと、コンパイルエラーが発生します。
VAR_IN_OUT型の出力は、他のFBの入力と直接接続できないため、エラーとなります。
詳しい説明は、MULTIPROG ヘルプの目次から、以下を参照してください。

・ [プログラミング システム ヘルプ] > [エラーカタログ] > [PLCエラーカタログ] > [専用コード ジェネレータのエラー メッセージ]
4-26 ファンクション IMEMCPYのパラメータ SRC または DST に、BYTE型変数以外(配列や構造体等)を接続するにはどうすればいいですか?
ProConOSファームウェアライブラリに収録されているファンクション「IMEMCPY」の SRCおよび DSTは BYTE型のため、直接は配列や構造体を接続すると、ビルド時にエラーが発生します。
IMEMCPY


対処方法として、INT型配列と BYTE型変数を同じメモリ領域を共有させる方法があります。
この方法を使用すると、INT型配列で編集したデータを BYTE型変数を通して IMEMCPYすることができます。
メモリ領域を共有させる


メモリ領域を共有する手順を、INT型配列「Int_Arr」から BYTE型配列「byte_arr」へのデータコピーを例に説明します。
【手順】
INT型配列「Int_Arr」から BYTE型配列「 byte_arr」へのデータコピーを例に説明します。

(1) SRCに接続したい INT型配列「Int_Arr」の I/Oアドレスとして、Mエリア[%MB3.0]を割り当てます。
(2)新たに BYTE 型の変数[Base]を作成し、I/Oアドレスとして、「Int_Arr」同じ[%MB3.0]を割り当てます。
割り当て


(3) IMEMCPYの SRCに変数[Base]を接続し、その他のパラメータを指定します。
※ BYTE型配列の場合は先頭の要素を接続することができるので、DSTには[byte_arr]の先頭要素を接続しています。
完成

以上で、「Int_Arr」のデータを「byte_arr」にコピーすることができます。
4-27 プロジェクトやPOUの中身を、他者が変更/閲覧ができないようにする機能はありますか?
パスワードを使ってプロジェクトを保護する機能があります。
MULTIPROG ヘルプの[キーワード]タブから『セキュリティの設定』を参照してください。

【POU保護の手順】
①POUの保護を行う場合、対象のPOUのプロパティから、[セキュリティ]タブを開き、権利を設定します。
セキュリティ

書き込み保護 正しいパスワードを入力するまで、POUを変更できません。
読み出し保護 正しいパスワードを入力するまで、POUを閲覧できません。


②パスワードの設定を、[ファイル]メニューの[パスワードの入力] から行います。
パスワードの入力

パスワードを有効にすると、保護されたPOUのアイコンに鍵マークが表示されます。
パスワード有効


③保護を解除するには、プロジェクトへログインする必要があります。
プロジェクトへのログインは、パスワードを設定したときと同じく[ファイル]メニューの[パスワードの入力] から行います。
プロジェクトへログイン

POU保護のほか、プロジェクト全体やResourceの保護も可能です。
※ 詳細については、MULTIPROGヘルプの[キーワード]タブから『セキュリティの設定』を参照してください。
4-28 複数のユーザーが同時に同じプロジェクトで作業することはできますか?
Iマルチユーザ プロジェクト機能があります。サーバ プロジェクトをネットワーク サーバ PC 上に保存し、各ユーザーは自分の PC でクライアント プロジェクトを作成して作業を行います。

以下に、簡単な操作手順を記載します。


【操作手順】
①サーバ プロジェクトとなるプロジェクトを開き、[プロジェクト]メニューの[サーバ プロジェクトとして保存]を選択します。
サーバ プロジェクトとして保存

② サーバ プロジェクトの保存場所を指定します。
保存場所


③実際に編集を行う PC上で、[プロジェクト]メニューの[クライアント プロジェクトの作成]を選択します。
ライアント プロジェクトの作成


④サーバ プロジェクトのパスと、クライアント プロジェクトの保存先を指定します。
保存場所


⑤プロジェクトの編集を行う場合は、編集する項目を選択し、チェックアウト を行います。
チェックアウト


⑥編集が完了し、サーバプロジェクトに反映する場合は、 チェックイン を行います。
チェックイン


※ 詳細についてはMULTIPROG ヘルプの目次から、以下を参照してください。
・ [プログラミング システム ヘルプ] >[マルチユーザ プロジェクト]
4-29 変数の一覧をインポート/エクスポートする機能はありますか?
変数設定などの設定内容については、テキストファイルでのインポート/エクスポートは可能です。
4-30 各言語でのファンクションブロックの呼び出し方。
標準ファンクションブロックやFWLのファンクションブロック、ユーザー作成のファンクションブロック等、すべてのファンクションブロックはすべての言語(FBD・LD・IL・ST・SFC)で呼び出すことが可能です。ここでは各言語でのファンクションブロックの呼び出し方を説明します。

1. エディットウィザード上で使用したいファンクションブロックをダブルクリックします。
エディットウィザード


2. 変数のプロパティダイアログが表示されるので、ファンクションブロックの名前を指定し、「OK」を押してください。
変数のプロパティ


3. グラフィックエディタ上にファンクションブロックが表示されます。
ファンクションブロック


4. 作成されたファンクションブロックの各パラメータ部(ここではIN・PT・Q・ET)に接点・コイル・変数を割り当ててください。これでファンクションブロックが使用できます。
ファンクションブロック使用可能



1. エディットウィザード上で使用したいファンクションブロックをダブルクリックします。
エディットウィザード



2. 変数のプロパティダイアログが表示されるので、ファンクションブロックの名前を指定し、「OK」を押してください。
変数のプロパティ



3. テキストエディタ上にファンクションブロックのコードの雛形が出来ます。
雛形IL
IL
雛形ST
ST

4. 「ファンクションブロック名.○○」とかかれた部分(ここではTON_1.○○)が作成されたファンクションブロックの各パラメータとなります。また、ST言語では「ファンクションブロック名(...)」の括弧内で入力パラメータ(ここではIN・PT)を指定します。雛形の(* BOOL *)や、(* TIME *)などで書かれている部分が、各パラメータの入力・出力先となっていますので、割り当てる変数に書き換えてください。これでファンクションブロックが使用できます。
 ファンクションブロック使用可能IL
IL
ファンクションブロック使用可能ST 
ST


グラフィック ワークシートを開き、[オブジェクト]メニューの [ステップ/トランジション]を選択し、ステップとトランジションを作成します。作成したステップに繋がっているアクションブロック(ここではA001)をダブルクリックします。

SFC


2. アクションブロックに記述する言語の選択画面が出るので、使用する言語を選択し、「OK」を押してください。
使用する言語を選択


3. プロジェクトツリーのアクションフォルダに選択した言語のワークシートが生成されます。
ワークシート


4. それぞれのワークシートにファンクションブロックを記述します。
選択した言語がFBD・LDの場合、「FBD・LDでのファンクションブロックの呼び出し方」を、IL・STの場合、「IL・STでのファンクションブロックの呼び出し方」を参考にしてください。
4-31 プロジェクトの管理機能やツールは何か有りますか?
プロジェクトの管理は、マルチユーザー機能をご利用ください。
※ マルチユーザー機能はPro+のみの機能になります。

マルチユーザー によるプロジェクト開発には、下記の2種類の管理方法があります。
1 標準マルチユーザー ファイルシステムによるプロジェクト管理
2 ソース コントロール システムによるプロジェクト管理


1 の標準マルチユーザー ファイルシステムによるプロジェクト管理は、VSS(Visual SourceSafe)などの管理ソフトは必要なく、一つのプロジェクトをマルチユーザーで開発できるように排他制御管理をします。
排他制御のみで過去の状態へのロールバックや修正情報などの機能は有りません。

2 のソース コントロール システムによるプロジェクト管理は、VSS(Visual SourceSafe)の機能を使用し、一つのプロジェクトをマルチユーザーで開発できるように排他制御管理をしてくれVSSの機能であるロールバックや過去の情報の参照等も可能です。
※ VSSはINplc製品には含まれません。お客様でご用意して頂く必要が御座います。

※ 詳細についてはMULTIPROG ヘルプの目次から、以下を参照してください。
・ [プログラミング システム ヘルプ] → [マルチユーザ プロジェクト]
4-32 データアライメントは何バイトですか?
データアライメントは2バイトです。構造体などを使用する場合はご注意ください。
例:下記のような2バイトアライメントに合わない場合は、paddingのように調整を行ってください。
AddressByte 1: BYTE variable 1
AddressByte 2: BYTE variable 2
AddressByte 3: BYTE variable 3
AddressByte 4: BYTE padding
AddressByte 5: DWORD variable
AddressByte 6: |
AddressByte 7: |
AddressByte 8: V
4-33 日時を取得する方法は有りますか?
■ローカル時刻を取得したい場合
「INFnCtrl」FWL内のFB「mn_RTC_S」をご使用ください。
※ 詳細については、「INFnCtrl_Manual.pdf」をご参照してください。
■グリニッジ標準時刻を取得したい場合
「ProConOS」FWL内の「RTC_S」をご使用ください。
※ 詳細については、MULTIPROGの標準FB/FUのヘルプをご参照してください。
※ INplc v3以降は、どちらもローカル時刻を取得します。
4-34 曜日データを取得する方法は有りますか?
曜日の情報を取得するFUやFBなどは準備されていません。
日付からツェラーの公式を使用し、計算して結果を返すファンクションを作成してください。

以下のサンプルプロジェクトを参考にしてください。
※サンプルはユーザーファンクションとしてご利用ください。
4-35 立ち上がり時に動作を行うFBなどを連続して動作させる場合はどのように取り扱えばいいのでしょうか?
ループ処理で立ち上がりエッジを制御しながら使用してください。

以下のサンプルプロジェクトを参考にしてください。
4-36 三菱シーケンサのFリレーのような役割を持つ機能はあるでしょうか。
リレー等での通知では有りませんが、INplcでは、システムタスクを使用する事により異常の有無の診断を行う事が可能です。

システムタスクの種類については「2-5自己診断機能はありますか?(コントローラ自身で異常の有無の診断を行う機能)」をご参照ください。
4-37 三菱シーケンサのインバース(INV)の機能と同等な機能はあるでしょうか。
下記のファンクションで演算結果を反転できます。

【ファンクション】NOT
【説明】このブール ビット演算ファンクションは、入力パラメータに接続されたオペランドを、ビット単位に否定します。
4-38 三菱シーケンサのMC/MOV/MOVP/INCP/DINCP/DMOVP機能と同等な機能はあるでしょうか。
メモリポインタの変更等は出来ませんが、INplcの場合での実現方法は下記をご参照ください。

また、以下のサンプルプロジェクトも参考にしてください。
4-39 開発環境だけでラダーを実行しデバッグする方法はありますか?
開発環境だけでラダーを実行しデバッグする方法は有ります。
※ I/Oについては実際のI/Oデバイスでは無くI/O シミュレータを使用します。

I/O シミュレータを使用する為には、下記の設定項目の設定をしてください。

① MULTIPROGのプロジェクトツリーウィンドウでResourceを選択し、右クリックで設定項目を選択します。
Resource

② リリース設定のポートを「シミュレーション1」を選択しOKボタンで設定を終了する。
シミュレーション1

③ ULTIPROGのプロジェクトツリーウィンドウでIO_Configurationをダブルクリックし、I/Oコンフィグレーション画面を表示してください。
IO_Configuration

④ INPUT・OUTPUT全ての「ボード/I/Oモジュール」をユーザー定義に変更します。
変更するI/Oグループをダブルクリックし、プロパティ画面を表示します。
新規で作成する場合は[追加]ボタンを押して追加してください。
ボード/I/Oモジュール

⑤ 変更の場合は、ボード/I/Oモジュール以外はそのままで結構です。
新規の場合は各項目を使用するI/Oモジュールに合わせて設定を行ってください。
ボード/I/Oモジュールの選択は、[ユーザー定義入力]を選択します。
[ドライバパラメータ]ボタンを押してパラメータ画面を表示します。
ユーザー定義入力

⑥ 表示されたダイアログの[ドライバ名]欄に“SIMIO"と入力し、[OK]ボタンをクリックします。
※ MULTIPROG4.8(INplc-SDK Basic)の場合は、"DEMOIO"と入力します。
ドライバパラメータ

⑦ INPUT・OUTPUT全ての「ボード/I/Oモジュール」をユーザー定義に変更出来れば完了です。
完了

I/O シミュレータの使用方法は、製品付属の「MULTIPROGクイックスタートガイド」をご参照ください。
4-40 MULTIPROGのシミュレータで確認したプログラムをINplcコントローラにダウンロードする手順を教えてください。
下記の手順にてシミュレータで使用する設定からINplcコントローラにダウンロード出来るように設定変更してください。

① MULTIPROGのプロジェクトツリーウィンドウでResourceを選択し、右クリックで設定項目を選択します。
Resource

② リリース設定のポートを「DLL」を選択しパラメータに「-ip 192.168.3.1 -TO2000」と入力しOKボタンで設定を終了する。

※「192.168.3.1」はINplcコントローラのデフォルトIPアドレスになります。IPアドレスを変更している場合は、変更したIPを入力してください。
DLL -ip 192.168.3.1 -TO2000

③ ULTIPROGのプロジェクトツリーウィンドウでIO_Configurationをダブルクリックし、I/Oコンフィグレーション画面を表示してください。
IO_Configuration

④ INPUT・OUTPUT全ての「ボード/I/Oモジュール」でユーザー定義されているグループを実際のI/O設定に変更します。
変更するI/Oグループをダブルクリックし、プロパティ画面を表示します。
新規で作成する場合は[追加]ボタンを押して追加してください。
ボード/I/Oモジュール

⑤ ボード/I/Oモジュールの選択は、[ユーザー定義入力]から実際に使用するボード/I/Oモジュールを選択します。
[ドライバパラメータ]ボタンを押してパラメータも設定してください。
※ボード/I/Oモジュール毎にドライバパラメータは違いますので、各ユーザーマニュアルをご参照ください。
ドライバパラメータ

4-41 FBDでファンクションやファンクションブロックFBなどをそろえる機能はありますか?
LDで記述する事によりプログラムの整形がしやすくなります。
LDはFBD同様ファンクションやファンクションブロックを使用する事が可能です。
4-42 位置を移動するとファンクションやファンクションブロックの実行順番が変わらない様に固定出来ませんか?
ファンクションやファンクションブロック単位での順番固定は出来ませんが、ある程度のブロック単位であればSFCとの組合せで記述してください。(SFCはINplc-SDK Pro+のみ対応です。)
※SFCは状態せん移に基づく順序制御に適しています。
4-43 立上がり接点や立下り接点の機能はありますか?
現在は対応しておりません。
エッジ検出型ファンクション ブロック(R_TRIG・F_TRIG)との組合せでご利用ください。
4-44 XMLファイル形式のファイルフォーマットでエクスポートし再びインポートを行うとコンパイルエラーとなる。
インポート後にコンパイルエラーが発生した場合、エラーウィンドウにてそのエラーメッセージをダブルクリックして該当するFB/FUを表示。
そのFB/FUを選択してマウス右クリックにて「FB/FUを更新」を実行を行う事で、コンパイルが可能となります。
4-45 グローバル変数の最大使用可能な数はいくつですか?
グローバル変数の最大使用可能な数は約30000個です。(バージョンINplc3.00以上のINplcSDK Pro+の仕様です)
※上記以上の宣言は出来ますがメイク時にエラーとなります。
4-46 標準FU/FBのヘルプにあるFILE_LOADやFILE_STOREが見つかりません。
※ INplc v2.Xに関する質問
このFBは、PROCONOS FWLのファイル操作FBを利用したユーザ ライブラリ「PROCONOS_EXTENDED」に含まれるFBです。
利用するには、以下のライブラリをプロジェクトに追加してください。
  • ファームウェアライブラリ:[PROCONOS]
  • ユーザ ライブラリ:[PROCONOS_EXTENDED]

このユーザ ライブラリを使用するには、ユーザ ライブラリのプロジェクトの再コンパイルが必要な場合があります。
C:\Users\Public\Documents\MULTIPROG\Libraries\PROCONOS_EXTENDED.mwtを開き、「ビルド」メニューから「プロジェクトの再コンパイル」を行ってください。

なお、このFBで扱えるバッファサイズは1000byteとなります。
プロジェクトに合わせた処理やパラメータ定義の変更が必要な場合は、FBのコードを参考にしてPROCONOS FWLのFBを使用した処理を実際のプロジェクトへ組み込んでください。
※ このFBのコードは、配置したFBをダブルクリックすると表示されます。
※ このFBの処理はST言語で記述されています。
4-47 日時取得FB「RTC_S」で取得した日時がPCの日時と異なります。
※ INplc v2.Xに関する質問
「ProConOS」FWL内の「RTC_S」を使用した場合、グリニッジ標準時刻を取得します。
ローカル時刻を取得したい場合は、INFnCtrl」FWL内のFB「mn_RTC_S」をご使用ください。
詳細については、「INFnCtrl_Manual.pdf」をご参照してください。
なお、INplc v3以降は、どちらもローカル時刻を取得します。
4-48 1スキャン毎にパルスを出力するファンクションはありますか?
現在、1スキャン毎にパルスを出力するファンクションはありませんが、以下のロジックを組むことで1スキャン毎に接点のON/OFFを切り替えることができます。
--|/|----()--
4-49 FILE_READのLengthReadに実際に読み込んだByte数が返ってきません。
※ INplc v2.Xに関する質問
FILE_READ の LengthRead は、処理に成功した場合に MaxLength に指定されたバイト数を返却します。
なお、Buffer に格納されるデータは実際に読み込んだデータ分となります。
■実際のデータ数の確認方法について
FILE_READ でデータを取得した後、FILE_TELL で現在位置を取得することで、実際に読み込んだデータ数を確認できます。
4-50 旧バージョン(v2.xx以前)で作成したプロジェクトを、INplc v3.00以降で使用できますか?
Expressでは、プロジェクトの種類が違うため使用できません。
Pro+では、基本的にはリソースの設定を変更することで使用できます。
ただし、以下のようにコード等の修正が必要になる場合がありますので注意してください。
  • INplc v3.00から、グローバル変数の種類及びI/Oアドレスが変更されています。
  • INplc v3.00以上では、変数ユーザー領域(%Mセクション0)をサポートしていません。
  • その他、コードにエラーが発生する可能性があります。
4-51 プロジェクトを開く度にResouce設定の接続先IPアドレスの設定が初期値に戻ってしまいます。
※INplc v3.05/v3.06 INplc-SDK(Express)で確認されている問題です。INplc v3.07より改善されています。
PLCプロジェクトのフォルダに含まれる以下のファイルを削除してください。
  • <PLCプロジェクトのフォルダ>\C\Configuration\R\Resource\eCLRIpAddressAssignments.set
また、eCLRIpAddressAssignments.setはテンプレートに含まれていますので、テンプレートからも削除が必要です。
以下のZIPファイルをダウンロードしてください。
INplc-SDK(Express)がインストールされているPCで解凍し、中にあるSetup.exeを実行してください。
4-52 POUや変数名などの識別子の制限や規則は有りますか?
基本的には、以下の規則を守らなければなりません

●識別子は、文字、数字および下線で構成できます。
●識別子の先頭は、文字または下線でなければなりません。
●大文字と小文字を混合できます。
●複数の下線または空白は使用できません。

次の表で示すように、異なる長さの識別子を使用できます
識別子
文字数
POU、記述ワークシート、 プロジェクト、 コンフィグレーション要素、
ビットマップ、 ページレイアウト、アーカイブ ファイル
24 文字
変数とコード ボディ ワークシート 24 文字
ステップ、アクション、トランジション 24 文字
変数、インスタンス名 30 文字
4-53 全角と半角では入力できる文字数は違いますか?
半角は1バイト全角は2バイトなので全角で入力可能な文字数は半分となります。
4-54 メモリの変数を配列として取り扱う事は出来ますか?
配列変数として取り扱う事が出来ます。

例:BOOL型16点を配列として取り扱う

1)配列宣言を型定義します。

TYPE
  TEST_Arr : ARRAY [0..16] OF BOOL;
END_TYPE

2)配列宣言した型の変数を作成します。
メモリのベースアドレスを変数のアドレスに定義


3)配列変数名の後に「[配列index番号の値が入る変数名]」を入れる事で配列index番号の値が入る変数の値がindex番号となります。

TEST_Arr[配列index番号の値が入る変数名]

例:TEST_Arr[index] := True;
4-55 ポインタ変数のような変数は作れますか?
残念ながらIEC61131-3ではポインタ型配列変数のように使える変数の型が用意されていない為作る事が出来ません。
5-1 実際のI/Oが接続されていなくても動作テストはできますか?
開発ツールのI/Oシミュレーション機能を使用すればテスト可能です。(I/O点数変更可)
5-2 PLCを停止せずにプログラムの変更はできますか?
開発ツールから[変更のダウンロード]を行うことで、PLCを停止せずにプログラムを変更することができます。

「変更のダウンロード」機能の目的は、動作中の PLC を止めずに、マウスで数回クリックするだけで、ターゲットにプロジェクトの修正を送信し適用することです。

この機能は、コードやデータの保存に必要なメモリの 2 倍の 領域を、PLCが持つ事により可能にしています。
1 つのメモリ領域には現在実行中のプログラムが保存され、第 2 の領域は空いています。
プログラミング システムは、修正されたプロジェクトに影響する部分を空きメモリ領域にダウンロードし、それにしたがって準備を行い (例 : 動作プロジェクトからデータをコピーし、両方の領域を同期させる)、その後 PLCを切り替え修正プロジェクトを実行します。

プロジェクトサイズとPLCプロセッサ性能 / 種別によっては、PLCが2サイクル間に現在のプロジェクトから修正版に変更可能なら、これはリアルタイムに実行できます。
そのため、制御された自動化システムは、意図する制限内に確実に動作します。
5-3 実行中のプログラムの処理時間を表示する機能はありますか?
開発ツールの「リソースダイアログ」で情報を表示することができます。
5-4 ステップ実行機能はありますか?
オンラインモードでブレークポイントを設定する事により、設定したコード位置でプログラムの実行を止める事が出来ます。
その後ステップ単位で実行を行って行く事も可能です。 また、設定したブレークポイントをまとめて解除する事も可能です。

・次図はオンライン モードの ST ワークシートの例で、2 つのブレークポイント (4 行と 15 行) がセットされ、プログラムの実行は停止(15 行)しています。

ブレークポイント
5-5 プログラムのアップロード機能はありますか?(PLCで実行中のプログラムを開発環境に展開する)
ソースファイルがダウンロードされている場合、[アップロード]ができます。
PLCへダウンロード時に、ダウンロードダイアログにて[ソースを含む]のチェックをONにしてからダウンロードすることで、ソースファイルがPLCにダウンロードされます。
5-6 PLCで実行中のプログラムと開発環境のプログラムを比較することはできますか?(差分をとるなど)
開発ツールの[プロジェクトの比較]で2つのプロジェクトの変数、タスク等の違いを抽出することができます。
5-7 PLCのメモリ状態をバックアップすることはできますか?(データを持ち帰ってメンテナンスをする場合など)
現在、この機能は実装していません。今後対応する予定です。
5-8 処理にかかった時間を表示することはできますか?
内部メモリに含まれている構造体からロジックにかかった時間のMAX値を取得することができます。

5-9 ダウンロードしないでデバッグモードにした場合、デバッグモードの表示が出なくなるときがある。
開発ツールMULTIPROG4.8を使用している場合に発生します。暫定処置として開発ツールのワークスペースに開かれているワークシートを全て閉じ、再度開くことにより解消されます。 次期バージョンでは、この問題は解消されます。
5-10 処理時間の計測をPOU毎に行う仕組みはないのか?
POU毎に処理時間を計測する方法はございません。
5-11 MULTIPROGのロジックアナライザの使い方についての説明は何を参照すればいいですか?
下図のMULTIPROGヘルプの[PLCヘルプ]-[総合PLCオンラインヘルプ]-[ロジックアナライザ]を御参照いただければと思います。

ロジックアナライザ
5-12 デバッグダイアログを開かずに接点の値を切り替えることはできますか?
[トグル ブール変数]に設定しておくと、接点をクリックするだけで値を変更できます。

※ BOOL型のみ対応しています。
※ %IXxx.xなどのI/Oアドレスが設定されている変数の場合は 強制設定 となります。
※ I/Oアドレスが設定されていない変数の場合は 上書き となります。


【設定方法】

変数ワークシートを開き、対象の変数の[TB]チェックボックス(表の右端)をONにしてください。

[TB]チェックボックス


その後、プロジェクトのメイクおよびダウンロードを行い、デバッグモードに切り替えます。
[オンライン]メニューから[トグル ブール変数]モードを選択することで設定完了です。

[トグル ブール変数]モード

詳しい説明は、MULTIPROG ヘルプの目次から、以下を参照してください。

[プログラミング システム ヘルプ]>[PLC ヘルプ]>[総合 PLC オンラインヘルプ]>[オンライン モード :PLC モニタリング]>[グラフィック オンライン ワークシートでブール変数をトグルする]

5-13 デバッグで構造体変数のメンバー変数の値を確認する方法は有りますか?
①右クリックで「ウォッチウィンドウを開く」を選択します。
ウォッチウィンドウを開く

②確認する構造体を選択し、右クリックで「ウォッチウィンドウへ追加する」を選択してください。
ウォッチウィンドウへ追加する

③表示したいメンバまたは構造体変数を選択してください。
項目選択

④選択した変数の内容をウォッチウィンドウで確認できます。
ウォッチウィンドウ
5-14 デバッグ中に強制設定を行った変数の状態をまとめて確認できますか?
リソースダイアログの[情報]ボタンをクリックし、表示された画面の[強制設定]タブで確認することができます。

プロジェクトコントロールダイアログ 強制設定
5-15 タスクの実行時間を計測できますか?
INplcの内部変数には、ティック単位でタスク処理時間が記録されており、それでおおよその処理時間を把握することができます。
5-16 デバッグ中に特定の変数の状態を確認できますか?
ウォッチ ウィンドウを利用することで、任意の変数の状態の確認/変更ができます。
ウォッチ ウィンドウ

ウォッチ ウィンドウの使用方法は FAQ 5-13 をご参照ください。
5-17 デバッグ時の数値表記を変更できますか?(16進数から10進数に変更したい)
デバッグ ダイアログの [値の表示] から、数値の表記方法を選択いただけます。
値の表示

標準 データ型により、10進、16進表記を自動的に決定します。
デシマル 10進表記になります。
ヘキサデシマル 16進表記になります。
バイナリ 2進表記になります。

5-18 実行中のラダーを修正しダウンロードすると変数が初期化されてしまいます。
現在の状態で変更を反映したい場合は、「ダウンロード」ではなく「変更のダウンロード」をご使用ください。
※ 詳細につきましては MULTIPROG ヘルプの[キーワード]タブから『変更のダウンロード』を参照してください。
5-19 5-19 ダウンロードしたプロジェクトがINplcコントローラの電源を切ると消えてしまいます。
「ダウンロード」時にブートプロジェクト設定にてダウンロードを行ってください。
※詳細につきましては MULTIPROG ヘルプの[キーワード]タブから『ブートプロジェクト』を参照してください。
5-20 INplcコントローラの電源を切っても次回の起動時に変数の値を保持する方法は有りませんか?
保持したい変数に保持設定を行ってください。
※ 詳細につきましては MULTIPROG ヘルプの[キーワード]タブから『保持変数』を参照してください。
5-21 実際のI/OがINplcコントローラに無い・INplcコントローラ自体が無い場合のデバッグ方法はどうするのか?
シミュレーション機能をご利用ください。
無いI/Oは、MULTIPROGのI/O コンフィグレーションの定義で「ユーザ定義入力」を使用し、開発環境にて実行しデバッグを行う事が可能です。

※シミュレーションでの一連のプログラミング・操作方法は「MULTIPROGクイックスタートガイド」をご参照ください。
※シミュレーション詳細につきましては MULTIPROG ヘルプの[キーワード]タブから『シミュレーション』を参照してください。
5-22 FBで値がおかしくなる。
FBに直接型変換FBを接続すると初期値が正しくない初期値になる場合がございます。
エラー
型変換FBは直接接続せず切り離してご利用ください。
正常
6-1 INplcが対応するINtimeバージョンはいくつですか?2.14には対応していますか?
INplcにおけるINtimeのバージョンは、4.2以上です。
それ以前のバージョンをご使用の場合は、INtimeのバージョンアップが必要となります。
6-2 INplcとユーザーアプリケーション(Windows/INtime)の連携方法について
INplcで動作するラダープログラムとユーザーアプリケーション(Windowsプログラム/INtimeプログラム)の連携を行う場合は以下のいずれかの機能を利用して実現します。

1)メモリ間I/F(INplc ⇔ アプリケーション)
2)イベント通知(アプリケーション⇒ INplc)
3)INtimeオブジェクトI/F(INplc ⇔ アプリケーション)

■ メモリ間I/F
メモリ間I/F

本機能は、INplcに標準実装されている MemDrv I/O ドライバーを利用したメモリ間インターフェースになります。
下記の図のように、MemDrv I/O ドライバーの共有メモリを経由してINplcラダープログラムとやりとりを行います。なお、MemDrv I/O ドライバーの共有メモリは、"ProConOS"プロセスに下記に示すカタログ名で作成されます。アプリケーションプログラムでは、共有メモリをLookup( LookupRtHandle() / ntxLookupNtxHandle() )したハンドルを用いて読み書きします。

メモリ間I/F 詳細


■ イベント通知
イベント通知

ユーザーアプリケーションからINplcのタスクタイプ「EVENT」に対し通知する機能です。
イベント通知 詳細


■ INtimeオブジェクトI/F
INtimeオブジェクトI/F

本機能は、INtimeに標準実装されているINtimeオブジェクト(セマフォ、メールボックス、共有メモリ)を利用したインターフェースになります。
INtimeオブジェクトI/F 詳細
6-3 PC-PLCのラダー図を開くことはできますか?ラダーの移行は可能ですか?
現在、ラダーの変換機能は実装されていません。
6-4 各タスクのINtimeプライオリティはいくつですか?
各タスクのINtimeプライオリティは次の通りです。
タスクの種類 タスク
プライオリティ
INtime
プライオリティ
CYCLICタスク
EVENTタスク
0 180
1 181
2 182
3 183
4 184
5 185
6 186
7 187
8 188
9 189
10 190
11 191
12 192
13 193
14 194
15 195
16~31 196
DEFAULTタスク - 196
SYSTEMタスク - 224

※ タスク プライオリティは、CYCLICタスクおよびEVENTタスクのみの設定です。DEFAULTタスク、SYSTEMタスクには設定できません。
※ 本内容は、INplc v2.00を元に記載しています。
6-5 CYCLICタスクのプライオリティ 16~31 のINtimeにおけるプライオリティは全て同じですが、INplcでも同じプライオリティとして扱われますか?
はい。同じプライオリティの扱いです。
なお、同プライオリティの場合の実行順序は、(DEFAULTタスクも含めて)MULTIPROGのプロジェクトウインドウのタスクツリーの下から上に順番に実行されます。
実行順番 タスク
1 DEFAULTタスク
2 CYCLICタスク3
3 CYCLICタスク2
4 CYCLICタスク1
実行順番
6-6 【Mエリア】とは何ですか?
【Mエリア】とは、INplcの持つ [共有メモリ領域] のことです。
この領域を利用することで、ユーザーアプリケーション(INtimeアプリケーションまたはNTXアプリケーション)とのデータ交換が可能です。

1) Mエリア基本情報
◆ INplc v2.01~
項目 内容 備考
カタログ名 PRO_MAREA  "ProConOS"プロセスにカタログされています。 
メモリサイズ 614,400 Byte(600 KB) 連続したメモリ領域が確保されています。
アクセス範囲 BIT %MX3.0.0 ~ %MX3.614399.7 "%M"でアクセスできる【PLCメモリ領域】は、[セクション0 ~ 3]で構成されています。 Mエリアは [セクション3] に割当てられるため、アドレスのオフセットの前に"3."を付加します。
※ PLCメモリ領域のセクションについては、こちらをご覧ください。
BYTE %MB3.0 ~ %MB3.614399
WORD %MW3.0 ~ %MW3.614398
DWORD %MD3.0 ~ %MD3.614396
 入出力の方向 双方向  

◆ INplc v2.10~
項目 内容 備考
カタログ名 PRO_MAREA  "ProConOS"プロセスにカタログされています。
メモリサイズ 16,777,215 Byte(16 MB) 連続したメモリ領域が確保されています。
アクセス範囲 BIT %MX3.0.0 ~ %MX3.16777214.7 "%M"でアクセスできる【PLCメモリ領域】は、[セクション0 ~ 3]で構成されています。 Mエリアは [セクション3] に割当てられるため、アドレスのオフセットの前に"3."を付加します。
※ PLCメモリ領域のセクションについては、こちらをご覧ください。
BYTE %MB3.0 ~ %MB3.16777214
WORD %MW3.0 ~ %MW3.16777213
DWORD %MD3.0 ~ %MD3.16777211
 入出力の方向 双方向  

◆ INplc v3.00~
項目 内容 備考
カタログ名 PRO_MAREA  "ProConOS"プロセスにカタログされています。
メモリサイズ 33,554,432 Byte(32 MB) 連続したメモリ領域が確保されています。
アクセス範囲 BIT %MX3.0.0 ~ %MX3.33554431.7 "%M"でアクセスできる【PLCメモリ領域】は、[セクション0 ~ 3]で構成されています。 Mエリアは [セクション3] に割当てられるため、アドレスのオフセットの前に"3."を付加します。
※ PLCメモリ領域のセクションについては、こちらをご覧ください。
BYTE %MB3.0 ~ %MB3.33554431
WORD %MW3.0 ~ %MW3.33554430
DWORD %MD3.0 ~ %MD3.33554428
 入出力の方向 双方向  

2) Mエリアの使用方法

※ INplc v3.00以上のシミュレーション機能では、共有メモリ領域をサポートしておりません。

◆ PLCプログラム側
PLCプログラムを作成する際に、 [変数] または [接点/コイル] のI/OアドレスにMエリアを割り付けます。 I/Oアドレスへの記述では、アドレスのオフセットの前にMエリアを示すセクション番号 [3] を付加します。 ※ "%M"のセクションについては、こちらをご覧下さい。

例1) Mエリア の 10 バイト目の 2 ビット目へ シングルビットサイズ でアクセスする場合
%MX3.10.2

例2) Mエリア の 20 バイト目へ WORDサイズ でアクセスする場合
%MW3.20
◆ ユーザーアプリケーション側
ProConOSプロセスにカタログされている ["PRO_MAREA"] をルックアップし、取得したメモリハンドルをマップして使用します。
※ ユーザーアプリケーション(INtimeアプリケーションまたはNTXアプリケーション)を作成するためには【INtime-SDK】(別売)が必要です。
6-7 Network7のVirtual EthernetとLegacy networkのVirtual Ethernetは同時に使用できますか?
Network7とLegacy networkのVirtual Ethernetは、同時使用できません。
7-1 MULTIPROGでプロジェクトのビルド時に、「MULTIPROGはリソースを制限して実行しています」と表示されました。
ビルド(コンパイル)実行時に下記のエラーメッセージが表示されることがあります。
エラー
このエラーの原因として、MULTIPROGのライセンス登録をしていない、または MULTIPROG用 USBドングルキーが挿入されていないことが考えられます。 ライセンス登録をしていない、または USBドングルが挿入していない場合、MULTIPROGは試用版として動作し、試用版の場合は利用可能なリソースに制限が掛かります。
7-2 MULTIPROGのシミュレーション機能を使ったとき、ダウンロードの途中で止まってしまいました。
PCのシステム環境により、シミュレーション機能を利用したときに下図のようにダウンロード中のままになることがあります。
この現象は、 Windows起動後の初回のシミュレータ起動時にのみ発生する現象であり、下記の操作によりシミュレーション機能をご利用いただけます。

シミュレーション機能

【対処方法】
タスクマネージャからシミュレータ「EasySim.exe」を終了し、MULTIPROGのダウンロード処理を中断させることにより、通常通りダウンロードなどの操作が可能となります。
7-3 SYSTEMタスク[ゼロによる除算(SPG11)]の処理でCONTINUEファンクションを使用すると、CPU負荷100%エラーが発生します。

CPU負荷100%エラー

SPG11を検知するSYSTEMタスクの処理では、CONTINUEファンクションは使用できません。
0除算などの「ハードウェア例外」が発生したタスクは、システムにより強制的に停止されます。
強制的に停止されたタスクは、CONTINUEファンクションを使用しても復帰することができないため、タスクの処理が完了できずにCPU負荷100%のエラーとして検知されます。
0除算発生後に処理を続行する場合は、HOT_RESTARTファンクションを使用してください。

※「CONTINUE」および「HOT_RESTART」は、PROCONOS.FWLに含まれています。ファンクションの詳細は、FB/FUヘルプをご覧ください。
7-4 IO_ConfigurationのI/Oグループ設定で開始アドレスに65535を指定した場合、ダウンロード時にエラーが発生します。

IO設定

エラー

I/O空間(Iエリア、Qエリア)のアクセス可能範囲を超えた場合、このエラーが発生します。
I/O空間(Iエリア、Qエリア)のアクセス可能範囲のサイズは65532バイトのため、I/O開始アドレスに設定できる値は[0~65531]となります。
[開始アドレス]と[長さ]の合計が65532バイトを超えた場合も、同様のエラーが発生します。

※ 以下の内容を合わせてご覧ください:
「2-17 変数や接点/コイルが割当てられる領域について」・・・ I/O空間(Iエリア、Qエリア)のアクセス可能範囲ついて記載しています。
「3-11 INplc I/O空間について」・・・ I/O空間(Iエリア、Qエリア)の開始アドレス・長さの概念について記載しています。
7-5 INplcTool使用時「実行時エラー'429':ActiveXコンポーネントはオブジェクトを作成できません。」が表示されます。
Windows7の場合に発生する事が報告されております。
ユーザーアカウント制御(UAC)を解除後、再インストールをしてください。
※ユーザーアカウント制御(UAC)を解除方法については、INplc-SDKセットアップガイドの「ユーザーアカウント制御(UAC)設定について」をご参照ください。
7-6 ダウンロード時「内部エラー。ファームウェア ファンクションまたはファンクション ブロック 'XXX' が無効です。」と表示されます。
ダウンロードしたプロジェクトで使用しているライブラリに該当するファームウェアライブラリがINplcコントローラにインストールされていません。
インストール・設定方法は、使用しているライブラリに該当する下記のドキュメントをご参照ください。
・ セットアップガイド
・ ユーザーガイド
※上記ドキュメントは開発環境のWindows→「全てのプログラム」→「INplc」→「拡張ユニットマニュアル」に御座います。
7-7 「オペランドが使用できないかまたは領域を超えています。」と表示されます。
変数のI/OアドレスがMULTIPROG のI/O コンフィグレーションの定義で定義した範囲の外のアドレスが設定されている可能性があります。

※その他の原因につきましては MULTIPROG ヘルプの[検索]タブから『インスタンス名' がデータ領域を超えています。』を検索してください。
7-8 MULTIPROGでプロジェクトのビルド時に、「POU '○○○○○○'を利用することはできません。」と表示されました。
このメッセージは'○○○○○○'がご利用のバージョンまたは製品では使用出来ないエラーメッセージです。
MULTIPROGのFB/FUのヘルプに記載されている機能は共通マニュアルの為、使用出来ない機能も記載されております事をご了解ください。

7-9 MULTIPROGのシミュレーション機能を使ったとき、接続タイムアウトになってしまいます。
シミュレーション機能のPLCエンジンが起動されていないため、タイムアウトとなります。
この現象は、INplc-SDK(Express)のインストール時にシミュレーション機能が正しくWindowsに登録されていない場合に発生します。
以下の方法でシミュレーション機能を再登録することで解消されます。(※ この問題は、INplc v3.06以降で修正されます)
① INplc-SDKをインストールした環境で管理者権限でコマンドプロンプトを開く
② 以下のコマンドを実行する
"%ALLUSERSPROFILE%\ADE\EASYSim eCLR 1\EASYSim.exe" /regserver
"%ALLUSERSPROFILE%\ADE\EASYSim eCLR 2\EASYSim.exe" /regserver
7-10 マニュアル(PDF)を印刷しようとすると「文書を印刷できません」と表示されます。
Adobe Acrobat Reader XI以降では、「文章を印刷できません」「印刷するページが選択されていません」というメッセージが表示され、印刷できない場合があります。

■ 解決策
以下の設定を行ってください。
1. Adobe Acrobat Readerの[編集]メニューから[環境設定]を選択してください。
2. [分類]から[セキュリティ(拡張)]を選択し、「起動時に保護モードを有効にする」のチェックをOFFにしてください。
3. Adobe Acrobat Readerを再起動してください。

参考リンク:「Adobe Readerコミュニティフォーラム - Adobe Reader XIで文書の印刷が行えない
(※ 2016/10/14現在の情報です)
7-9 MULTIPROGでプロジェクトのビルド時に、「割り当ての接続されたデータ型が等しくありません。」と表示されました。
接続元と接続先のデータ型が合わないと判断された場合に発生するエラーです。
接続元と接続先のデータ型を合わせてください。

また値をボディーコード中で挿入する場合でも発生する場合が御座います。
判別のためにIEC61131-3の書式を用いる必要があります。
ST言語での場合は下記のように明示的に型を指定してください。
A := 100; → A := DINT#100;
8-1 CC-Link IE用ドライバの適用方法について
INplcからCC-Link IEを利用する場合、別途RSI-CCIEを導入する必要があります。詳しくは INplc RSI-CCIE(CC-Link IE)適用手順 をご覧下さい。
8-2 EtherCAT®用ドライバが動作しません。
適用後INplc RSI-ECATが正しく動作しない場合は、下記の項目をご確認ください。
① 接続するLANポートは正しいか?
INplcコントローラにEtherCAT Studioをインストールした場合、EtherCAT Studioで使用するLANポート(Windowsで使用出来るLANポート)Nplcコントローラが使用するLANポート(INtimeが使用出来るINplcツールで設定したLANポート)違いますのでご注意ください。
② スレーブの最新ESIファイルを使用しているか?
スレーブの最新ESIファイルはスレーブベンダのHP等で取得する事が出来ます。
詳しくは各スレーブベンダへお問い合わせください。
③ EtherCAT StudioでマスターステートをOperationalに出来るか?
EtherCAT Studioで必ずマスターステートをOperationalに出来る事をご確認ください。
④ EtherCAT StudioでI/Oが出来るか?
EtherCAT Studioで必ずI/Oが出来る事をご確認ください。
⑤ EtherCAT Studioで作成したXMLファイルをINplcツールでINplcコントローラに送り込んだか?
スレーブによってはスレーブベンダのツールで設定が必要なスレーブも御座いますのでご確認ください。
RSI-ECATのサンプルにて動作確認を行ってください。(INtimeユーザに向け)
⑥ PDOマッピングされているメモリ領域を使用していないか?(CoE FB使用者向け)
PDOマッピングされているメモリ領域に対しCoE関連のFBは使用できません。
⑦ EtherCAT Masterが2重で起動していませんか?           
INplcで使用するEtherCAT Masterは自動でLoadされますのでINtimeのAutoLoadでの起動設定は不必要です。
確認方法
 1.プログラム→INtime→INtime Configurationで設定ツールを起動してください。
 2.設定するコンポーネントとしてNode Managementを選択してください。
INtime Configuration

          
 3.画面左側のツリーから「NodeA」を選択します。
 4.画面右側の「Auto Load」タブを選択し名称「RSI-ECAT」を無効設定後保存ボタンで保存し指示に従いカーネルの再起動を行ってください。
8-3 ハイバーテック製モーションボードが認識されません。
ボードが見つからない場合はボードIDが1から連番で設定されているかご確認ください。
8-4 INplc Configuration Panelから追加(インストール)するとき、「インストールできませんでした」と表示されます。
INplc Configuration Panelを実行しているPCのユーザー名に半角スペース(' ')が含まれている場合、インストールに失敗します。
半角スペースの入っていないユーザーアカウントをご使用ください。
(※ ユーザープロファイルフォルダ名が関係するため、ユーザー名の変更だけでは解決できません)
8-5 EtherCATのSDO通信を行う方法は?
INplcでSDO通信を行うにはEtherCAT FWL内のFBを使用して行います。

①ECAT_CoER(CoE読み込みFB)
②ECAT_CoEW (CoE書き込みFB)

使用方法は「EtherCAT® EcatDrv ユーザーズ ガイド」(EcatDrv_Manual.pdf)を参照してください。
ユーザーズ ガイドはINplc-SDK CD-ROM内またはINplc-SDKインストール時にインストールされます。
8-6 オンボードのパラレルポートは使用出来ますか?
オンボードのパラレルポートを使用するには、IO Direct I/Oドライバを使用しI/Oポートアドレスにアクセスしてパラレルポートの制御を行ってください。

使用手順は下記の通りです。

1.パラレルポートのデバイスをINtimeデバイスとして移してください。

 手順
 1)Widnowsのプログラムの中から[INtime]->[INtime Configuration]を起動
 2)INtime Configuration PanelからNode Managementのアイコンを選択し起動
 3)Node Management画面左のツリーから[NodeA]を選択
 4)Node Management画面右の[system]タブを選択
 5)LPT1予約項目を[はい]を選択
 6)保存ボタンで設定を保存
 7)再起動要求等が有れば指示に従って完了してください。

2.ISAバス対応ボード用のIOドライバのセットアップ

 INplcの[INplc-SDK CD-ROM]内にセットアップ手順書が下記の場所に御座いますので参照してください。

※ISAバス対応ボード用のIOドライバですが、I/Oポートアドレスにアクセスする機能を使用しLPTにも利用する事が可能です。 マニュアル内のISAバス対応ボード増設部分は読み飛ばしてください。

 セットアップマニュアル  [INplc-SDK CD-ROM]Documents\Driver_Manual\SetupGuide\IODirect_Setup.pdf

3.ISAバス対応ボード用のIOドライバの使用方法

 ユーザーズマニュアル  [INplc-SDK CD-ROM]Documents\Driver_Manual\UsersGuide\IODirect_Manual.pdf
9-1 「INplc-OPC Server」とはどういうものですか?
「INplc-OPC Server」の概要については OPCサーバー「INplc-OPC Server」について をご参照ください。
9-2 「INplc-OPC Server」の使い方が分かりません。
INplc-OPC Serverの利用方法については INplc-OPC ServerとINplc-Controllerの接続設定 をご参照ください。
PLCプログラムでの設定からOPCクライアントとの接続例までを解説しています。
9-3 別のPCにあるOPCクライアントから通信を行うにはどうすればいいですか?
ネットワークを経由したOPC通信の方法については ネットワーク経由(リモート接続)でOPC通信を行う場合の基本設定 をご参照ください。
10-1 工場出荷状態へ戻す方法は有りますか?
INplc3.08以降のINplcコントローラでWindows10以上のOSモデルが対象になります。
リカバリ方法はこちらの「INplcリカバリガイド」 をご参照ください。
※該当しないコントローラをお持ちのお客様は営業までご相談ください。