Beckhoff#TwinCAT3 IEC61131-3 データタイプ変換

IECのデータ・タイプ変換の簡単説明です。

他のメーカのCPU使った方ならわかりますが、メーカーよって違いますとデータの変換なども自分の専用関数があります。それはすこく不便でしょう。そこでIECのデータタイプの変換はほぼ標準化されています。

(少なくとも、Codesys・Siemens・Beckhoffにはほぼ同じな関数を使っています。)

関数名のルール

FROM_YOUR_ORG_DATATYPE_TO_THE_DATA_TYPE_THAT_YOU_WANT

FROM_YOUR_ORG_DATATYPEは元の変数のデータ・タイプ

THE_DATA_TYPE_THAT_YOU_WANTは変換したいデータ・タイプ

になります。

Example

実数から整数に変換したいなら:

REAL_TO_INT

16BIT整数を32BIT整数に変換したいなら:

INT_TO_DINT

注意点

基本がわかった上に、次は例外を話ししましょう。

いまはUSINTの変数VarAがあります。

USINTはUnsigned Short Integerで8Bitの符号なし整数です。

いまVarAをUINTのVarBに変換します。

これは問題ないです。

では逆に、VarBをVarAに変換したらどうになります?

100%問題ないといえません。

もしVarBの値は259のであれば、VarAに変換するとどうなるでしょうか。

259=2#0001_0000_0011です。

データ変換するには左の2Bytesを削除するだけになりますので、実際は

2#0000_0011=3です。

ここでわかったのはデータ変換するにはRange大きなな変数をRange小さいな変数を変換するときにOverRangeすると全然違う値がになります。

はーい、お疲れ様です。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

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

シェアする

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

フォローする