サポート >

INTALOGICへのよくある質問と回答

INTALOGICへのよくある質問と回答

INTALOGICへのよくある質問と回答

INTALOGIC エディタ関連

質問:INTALOGICでは何ステップのプログラムを作成できますか?

回答:7.5Kステップです。

質問:エディタで回路を編集するとき、同時に何行まで編集できますか?

回答:同時に編集可能な行数に制限はありません。

ページの先頭へ

DFC(Dynamic Function Call)関連

質問:独自の命令を追加することはできますか?

回答:DFC命令により、追加できます。DFC命令とは、C/C++/MFCなどで作成したDLLを呼び出す命令です。

質問:INTALOGICに添付されているDFC命令のサンプルDLL、FILEACC.DLLの関数LoadTxtFile(OMにテキストファイルの数値データを書き込む関数)を実行するとき、テキストファイルのフォーマットはどのようにすればよいのですか?

回答:LoadTxtFileで使用するデータファイルには、1行に数値データ1つというフォーマットになります。例えば、以下のようになります。
先頭行から順に、指定したOMに書き込まれます。

質問:文字列を格納したテキストファイルを読込み、共有メモリに展開することはできますか?

回答:文字列を格納したテキストファイルを読み込む機能はございませんので、サンプルDLL、FILEACCの関数LoadTxtFileを参考にして、ユーザでDFC命令用DLLを作成してください。
なお、文字列データのASCIIコードをテキストファイルに格納するのであれば、サンプルDLL、FILEACCの関数LoadTxtFileを用いることで、共有メモリに展開することができます。

質問:DFC命令用の関数で使用しない引数があるので省略してよいですか?

回答:インタフェースが決まっていますので、省略することはできません。

質問:DFC命令で使用する関数名に制約はありますか?

回答:ANSI C規格のC言語で使用できる関数名としてください。

質問:1つのDFC命令用DLLの中に、複数の関数を作成したのですが、共有メモリのDFC命令完了ビットSB32~SB63は、それぞれの関数に対応するのですか?

回答:例えば、FUNC.DLLの
関数FUNC1 ←→ SB32
関数FUNC2 ←→ SB33
関数FUNC3 ←→ SB34
…        …
DFC命令完了ビットSB32~SB63は、EDITORのメニュー[補助]-[DFC設定]で登録した、DFC命令(DLL)に対する完了ビットであり、1つのDFC命令の中で呼ぶそれぞれの関数に対して割り当るものではありません。
例えば、
FUNC1.DLL ←→ SB32
FUNC2.DLL ←→ SB33
FUNC3.DLL ←→ SB34
… …
別々の完了ビットを割り当てる必要がある場合は、別々にDFC命令用DLLを作成する、あるいは、終了時、別々の共有メモリCBをONする処理を関数に追加する、などが必要です。

質問:別のDFC命令を同時に2つ実行すると、VLA_Read実行中に受信エラー(エラーコード102)が発生します。ただし、それぞれ別々に実行するとエラーは発生しません。どうすれば、エラーを回避できますか?

回答:受信エラー102は共有メモリにアクセスする頻度を下げることで回避できます。
例えば、以下のような対処が考えられます。
・VLA_Readを実行している箇所をループにし、エラーが発生していれば再度VLA_Readを行い、正常であればループを抜けるような処理に変更してください。また、ループの間にsleepを入れてください。
・VLA_Readの5番目の引数には、SMEM_NORMAL_MODE(排他処理を行う)を使用してください。

ページの先頭へ

演算処理関連

質問:INTALOGICで剰余を計算できますか?

回答:計算できます。"/"命令で、割り算の商と余りの値を得ることができます。

ページの先頭へ

OM(ObjectMemory)関連

質問:ビットOMにビット指定アクセスする場合、設定上、注意することはありますか?

回答:ビット指定する場合は、OMの先頭アドレスに4の倍数を指定してください。(良い例:M4:4、悪い例:M5:4)
また、ビット点数も32までの4の倍数を指定してください。(良い例:M4:8、悪い例:M4:9)

質問:SBB99を立上り接点にできますか?

回答:SB99は常時ONのシステムビットであり、立上り接点には使用できません。
なお、起動時や、STOP→RUNの場合でも、SB99はパルス発生しません。

質問:INTALOGICのOM Fに2147000000をセットすると、2147000064になりましたが、Fの精度は何桁なのですか?

回答:Fの精度は7桁(単精度)となっております。このため上記のような誤差が生じます。

ページの先頭へ

その他

質問:WDTエラーを無効にする、または、エラー発生後自動的に復旧する方法はありますか?

回答:WDTエラーを無効にする方法、および、自動復旧の機能はございません。ただし、他のアプリケーションから、共有メモリSB191をONすることで、RUN(運転)を再開させることができます。

ページの先頭へ