よくあるご質問
(FAQ)
よくあるご質問(FAQ)製品について
- 製品について > 制御機器 > シーケンサ MELSEC > MELSEC-Qシリーズ > C言語コントローラ > プログラムが正常に起動しない場合の対処方法について
製品について
プログラムが正常に起動しない場合の対処方法について
スタートアップファイルから起動したプログラムが正常に動作しない場合の対処方法は?
- カテゴリー :
-
- 製品について > 制御機器 > シーケンサ MELSEC > MELSEC-Qシリーズ > C言語コントローラ
回答
STARTUP.CMD中の命令の実行時にエラーが発生していることが考えられます。
STARTUP.CMD中の命令を1行ずつ、Shell(Q06CCPU−Vの場合はWindShell、Q12DCCPU−Vの場合はHost Shell)上で実行し、その都度エラーが発生していないか確認してください。
次のようにしてShellに入力します。
@ld 1,0,"/CF/abc.out"
実行結果が下記のように表示されるので、正常か異常か判断してください。
異常を判断する方法として、次の2つがあります。
(1)エラーメッセージの表示内容で確認する。
(2)printErrnoを入力して簡易エラーメッセージで確認する。
実行例)
・Q06CCPU−Vの場合
-> @ld (1,0,"/CF/abc.out")
ld error: unable to open "/CF/abc.out"
value = 0 = 0x0
・Q12DCCPU−Vの場合
-> @ld (1,0,"/CF/abc.out")
value = 0 = 0x0
-> printErrno
0x380003 = S_dosFsLib_FILE_NOT_FOUND
value = 0 = 0x0
注1)Shell上でのコマンド実行時のエラーだけでなく、C言語プログラムからVxWorksのAPI実行時に発生したエラーについてもprintErrnoにてエラー内容を確認することができます。
SEM_ID semid;
int timeout;
status = semTake(semid, timeout);
semTake実行で 戻り値(status)が 0x3d0004 の場合、下記となります。
-> printErrno 0x3d0004
>errno = 0x3d0004 : S_objLib_OBJ_TIMEOUT.
>value = 0 = 0x0
STARTUP.CMD中の命令を1行ずつ、Shell(Q06CCPU−Vの場合はWindShell、Q12DCCPU−Vの場合はHost Shell)上で実行し、その都度エラーが発生していないか確認してください。
次のようにしてShellに入力します。
@ld 1,0,"/CF/abc.out"
実行結果が下記のように表示されるので、正常か異常か判断してください。
異常を判断する方法として、次の2つがあります。
(1)エラーメッセージの表示内容で確認する。
(2)printErrnoを入力して簡易エラーメッセージで確認する。
実行例)
・Q06CCPU−Vの場合
-> @ld (1,0,"/CF/abc.out")
ld error: unable to open "/CF/abc.out"
value = 0 = 0x0
・Q12DCCPU−Vの場合
-> @ld (1,0,"/CF/abc.out")
value = 0 = 0x0
-> printErrno
0x380003 = S_dosFsLib_FILE_NOT_FOUND
value = 0 = 0x0
注1)Shell上でのコマンド実行時のエラーだけでなく、C言語プログラムからVxWorksのAPI実行時に発生したエラーについてもprintErrnoにてエラー内容を確認することができます。
SEM_ID semid;
int timeout;
status = semTake(semid, timeout);
semTake実行で 戻り値(status)が 0x3d0004 の場合、下記となります。
-> printErrno 0x3d0004
>errno = 0x3d0004 : S_objLib_OBJ_TIMEOUT.
>value = 0 = 0x0
- 製品名
- MELSEC-Qシリーズ
- 製品分類
- C言語コントローラ
- シリーズ
- CPU