こちらのシリーズではSysmac Studioの様々なFC・FBをプログラム例付きで解説します。今回はScaleTransという関数を紹介します。
さ、FAを楽しもう。

前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Reference Link
ScaleTrans?
ScaleTransは以下の用途があります。
- 入力値SclInの値を入力範囲から出力範囲にスケール変換します。
- 入力範囲は入力範囲下限 X0 と入力範囲上限 X1 で指定されます。
- 出力範囲は出力範囲下限 Y0 と出力範囲上限 Y1 で指定されます。
- 出力範囲にスケーリングされた値にオフセット値 SclOfs が加算され、その結果が出力値 Out として出力されます。
- SclOfs は、例えば温度制御の誤差補正などに使用されます。

ScaleTransは以下の変換が使用されます。


VAR_INPUT
| 変数名 | データ・タイプ | 説明 |
| SclIn | REAL/LREAL | アナログ入力値 |
| X0 | REAL/LREAL | 入力範囲の下限 |
| Y0 | REAL/LREAL | 出力範囲の下限 |
| X1 | REAL/LREAL | 入力範囲の上限 |
| Y1 | REAL/LREAL | 出力範囲の上限 |
| SclOfs | REAL/LREAL | 出力値のオフセット |
VAR_OUTPUT
| 変数名 | データ・タイプ | 説明 |
| Out | REAL/LREAL | 出力値 |
プログラム例
こちらはScaleTrans関数を使用したラダープログラム例です。

結果
それでは実際に結果を確認しましょう。現在の設定では0-4000を0-10にScalingになっています。rSclin=0.0なので、rValue出力も0になります。

今度rSclin=2000なら、rValueはだいたいtY1の半分、5になります。

最後にrSclOfsを30に設定すると、rValueはさらにそのOffset値をプラスし、35になります。
