Beckhoff#TwinCAT3 Screen/MessageBoxで文字を表示させる

今回は自分のパソコン上でMessageboxやテキスト出力の方法を紹介しようと思います。

イメージ的には、Messageboxはこんな感じ:

そしてテキスト出力はこんな風になります:

Function

使用するFunctionはADSLOGLREAL・ADSLOGDINT・ADSLOGLREALになります。3つのFBも似てるのInterfaceなので、Argだけが違うになります。

ADSLOGLREAL

このFunctionは文字を出力できます。そして文字列には1つの8Bytesの実数をパラメタとして参照することが可能です。使用符号は%fになります。

Example:”Hello World!%f”

VAR_INPUT
msgCtrlMaskDWORD文字出力の種類をError/Messagebox/Warningなどを定義できます。
msgFmtStrT_MaxString最大255文字です。
lrealArgLREALその文字列に含まれたいの8Bytes実数

ADSLOGDINT

このFunctionは文字を出力できます。そして文字列には1つの4Bytesの整数をパラメタとして参照することが可能です。使用符号は%dになります。

Example:”Hello World!%d”

VAR_INPUT
msgCtrlMaskDWORD文字出力の種類をError/Messagebox/Warningなどを定義できます。
msgFmtStrT_MaxString最大255文字です。
lrealArgLREALその文字列に含まれたいの4Bytes整数

ADSLOGSTR

このFunctionは文字を出力できます。そして文字列にはもう一つの文字列をパラメタとして参照することが可能です。使用符号は%sになります。

Example:”Hello World!%s”

VAR_INPUT
msgCtrlMaskDWORD文字出力の種類をError/Messagebox/Warningなどを定義できます。
msgFmtStrT_MaxString最大255文字です。
lrealArgT_MaxStringその文字列に含まれたいの文字列(最大255)

msgCtrlMask

3つの関数でもこのmsgCtrlMaskパラメタがあります。

以下のGlobal定数でどんなMessage Typeを定義するかを設定できます。

ADSLOG_MSGTYPE_HINTMessage=Advice
ADSLOG_MSGTYPE_WARNMessage=Warning
ADSLOG_MSGTYPE_ERRORMessage=Error
ADSLOG_MSGTYPE_LOGMessage=Log
ADSLOG_MSGTYPE_MSGBOXMessage=Messagebox
ADSLOG_MSGTYPE_RESOURCESupportしない
ADSLOG_MSGTYPE_STRINGMessage=文字列、Default

Example

以下は簡単なExampleになります。bMsgBoxが立ち上げると、ADSLOGDINTはMessagebox Type、ADSLOGSTRは文字列 Type、 ADSLOGLREALはWarning Typeを出力するようにします。

VAR

VAR;
bMsgBox :BOOL;
R_TRIG:R_TRIG;
diStation:DINT:=1;
sStation:STRING:=’1A’;
rErrorTemperature:LREAL:=70.0;
END_VAR

Code

R_TRIG(
CLK:=bMsgBox
);


IF R_TRIG.Q THEN
ADSLOGDINT(
msgCtrlMask:=ADSLOG_MSGTYPE_MSGBOX
,msgFmtStr:=’Something is Error in Station %d!’
,dintArg:=diStation
)
;
ADSLOGSTR(
msgCtrlMask:=ADSLOG_MSGTYPE_ERROR
,msgFmtStr:=’Something is Error in Station %s’
,strArg:=sStation
)
;
ADSLOGLREAL(
msgCtrlMask:=ADSLOG_MSGTYPE_WARN
,msgFmtStr:=’The Station Temperature is %f’
,lrealArg:=rErrorTemperature
);
bMsgBox:=False;
END_IF

以下のLinkでSample Codeダウンロードしてください。

https://github.com/soup01Threes/TwinCAT3/blob/main/TwinCAT%20Project_ADSLOG.tnzip

はーい、お疲れ様です。

もしなにか質問あれば、メール・コメント・Twitterなどでもどうぞ!

Twitterのご相談:@3threes2

メールのご相談:soup01threes*gmail.com (*を@に)

Footer_Basic

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする