HOME 戻る

自作したプログラムの自動起動

 
 
あなたのプログラムをKaracrixBuilder起動時に自動起動させる方法を説明します。
 
KaracrixBuilder では、
「制御プログラム」画面中の ctl01 プログラムがコンパイルされていると、
KaracrixBuilder 起動と同時に ctl01プログラムも自動起動するようになっています。
このことから、ctl01 のことをブートプログラムと呼んでいます。
これを利用して、あなたのプログラムを自動起動させます。
 
起動記述に関しては、ctl01プログラム内にプログラム起動例が記述してありますので参照下さい。
手順としては、先ずあなたのプログラムのプログラムオブジェクトIDをオープンします。
次に、このプログラムオブジェクトの状態を1に設定します。
この状態を1にする事が、プログラムの起動を意味します。
ちなみにプログラムを停止させる場合には、この状態を0に設定します。
 
ブートプログラムであるctl01プログラムからは、
複数のプログラムを時間を見計いながら順次起動させる事が出来ます。
また共通に使用するファイルデータやポイントオブジェクトの状態や属性値の初期化をここで行っておくのも良いでしょう。
 
プログラムS1とあなたのプログラムを並列実行させて使用する場合注意が必要です。
プログラムS1は、初期警報の発報を抑止するためアイドリング状態を設けています。
また、リモートI/O装置との初期通信でエラーリトライで時間を使っていることもあります。
従って、プログラムS1を起動してしばらく時間を空けてからあなたのプログラムを実行するようにしてください。
時間は、環境によりますが約30秒も待てば良いでしょう。
 
以下ブートプログラム(ctl01)内にプログラム起動の記述を書き込む例
objid_S1prg = kcxobj_open( "ctl??" );   /*プログラムS1を開きそのOBJIDを得る*/
objid_Yours = kcxobj_open( "ctl??" );   /*あなたのプログラムを開きそのOBJIDを得る*/
kcxobj_stat_iwt( objid_S1prg, 1 );   /*プログラムS1を起動させる*/
sleep( 30 );   /*プログラムS1を走らせ例えば30秒待つ*/
kcxobj_stat_iwt( objid_Yours, 1 );   /*そしてあなたのプログラムを起動*/
 
 
 
 
 
 
 
 

HOME 戻る