ST言語で機械保全技能士の課題回答

ラダープログラムは少し書けますが、メーカー問わず扱うことのできるST言語を勉強中です。ST言語はテキストベースのプログラミング言語でC言語に似た構文を持ちます。勉強の環境としてはキーエンスPLC(KV-8000)でシミュレータエディットで動作確認しながらしています。

まずはキーエンスのプログラムをかける人でもわかるように、変数を扱わずにプログラム作成をしています。

■KV-8000機器構成

入力:R34000~

出力:R34100~

2級向けのAND・OR回路

TMR (MR2000, T1, 30); //ランプ1_ONタイマー設定
TMR (MR2002, T2, 20); //ランプ1_OFFタイマー設定
TMR (MR4000, T3, 30); //ランプ2_ONタイマー設定
TMR (MR4002, T4, 50); //ランプ2_OFFタイマー設定

//WLランプ運転開始条件
IF R34002 OR (R34000 AND R34001) THEN //G_PB押し OR B_PB,Y_PB同時押し
MR2100 := TRUE;
ELSE
MR2100 := FALSE;
END_IF;

//YLランプ運転開始条件
IF R34000 AND R34001 THEN //B_PB,Y_PB同時押し
MR1000 := TRUE;
END_IF;

//GLランプ運転開始条件
IF R34000 THEN //B_PB押し
MR3000 := TRUE;
END_IF;

//ランプ運転停止条件
IF R34002 THEN
MR1000 := FALSE;
MR2000 := FALSE;
MR2002 := FALSE;
MR3000 := FALSE;
MR4000 := FALSE;
MR4002 := FALSE;
END_IF;

//YLランプ運転中
IF MR1000 AND MR2002 = FALSE THEN
SET(MR2000);
END_IF;
IF T1 = TRUE THEN
RES(MR2000);
SET(MR2002);
END_IF;

//YLランプ停止
IF T2 = TRUE THEN
MR2002 := TRUE;
MR2000 := FALSE;
END_IF;

IF T2 = TRUE THEN
RES(MR2002);
END_IF;

//GLランプ運転中
IF MR3000 AND MR4002 = FALSE THEN
SET(MR4000);
END_IF;
IF T3 = TRUE THEN
RES(MR4000);
SET(MR4002);
END_IF;

//YLランプ停止
IF T4 = TRUE THEN
MR4002 := TRUE;
MR4000 := FALSE;
END_IF;

IF T4 = TRUE THEN
RES(MR4002);
END_IF;

//ランプ出力
R34100 := MR2100; //WL出力
R34101 := MR2000; //YL出力
R34102 := MR4002; //GL出力

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA