ISaGRAF Ver.4/5ターゲットの移植を行う場合、PRDK(ISaGRAF Ver.4/5開発ツールキット)の CD-ROMの target\newOS\MonoTask ディレクトリのソースを使用します。
シングルタスク版の制限事項
以下のようになります。
- ターゲットのIXLライブラリにシンボルテーブルにアクセスするためのルーチンがありません。
したがって、シンボルテーブルをロードする、変数名からバーチャルアドレスを取得するといった機能は利用できません。シンボルテーブルをターゲットへダウンロードすること自体は可能です。
通信ファンクションブロック(Connect, URCV_S, USEND_S)は使用できません。1台のハードウェアプラットフォーム上で、複数個のISaGRAF Ver.4/5ターゲットを起動することはできません。これはOSがマルチタスクであってもです。
この理由は、ターゲットのコンフィギュレーションマネージャにあります。通常、同一プラットフォーム上では複数のコンフィギュレーションマネージャは同時に起動できないためです。ディフォルトの設定では、バインディングは使用できません。
使用できるようにするには、 IsaSys\dsys0def.h ファイルで "ITGTDEF_KVB" を #define する必要があります。
シングルタスク版はディフォルトで ISaRSI (RS-232Cのシリアル通信)通信のみをサポートしています。ただし、修正を加えればTCP/IP経由で通信することも可能です。以下を参照してください。
- 移植先のプラットフォーム上でイーサネットなどの通信ポートと、ノンブロッキングのTCP/IPスタックを使用可能であることが条件です。
isxsDrvsRegistrationルーチン(IsaSrvフォルダのdixs0reg.cファイルにあります)のコメントを削除し、ETCPドライバの登録を有効にすれば、TCP/IPが使用可能になります。 以下の行を有効にして下さい。
/* ETCP driver */
isxsEtcpRegister(pIxsId);
使用するワークベンチプロジェクトのテンプレート(ワークベンチインストールフォルダの "Tpl" フォルダにあります)からETCP定義を削除してください。こうすることで、ネットワークの選択時にETCPネットワークが表示されなくなります。
テンプレートの定義を行うときに、ディフォルトでワークベンチの "Tpl" フォルダにある "EmptyPrjmonoresource" テンプレートを使用してください。これを使用するターゲットが分かるような名前に変更しておいてください。次に、TDBuildを使用して、PLC定義 (ターゲット、ネットワーク、I/Oデバイス、C言語ファンクション/ファンクションブロック)を作成し、定義ファイルを生成して、テンプレートプロジェクトにPLC定義をインポートします。