投稿

ラベル(ST言語)が付いた投稿を表示しています

データセンターラダー言語・ST言語プログラム例

  以下に、DeepSeekの回答に基づくラダー制御の改善版を「ラダー図形式(擬似的記述)」および「構造化テキスト(ST)形式」で提示します。 ✅ 前提:改善点を反映した仕様 H2センサー:即時緊急モード移行+換気+警報 THEセンサー:温度・湿度をアナログ値比較で制御(D0, D1) FANBANK:温湿度に応じた段階制御(最小/中間/全開) 排他制御:温度高⇔低、湿度高⇔低を同時に動作させない モード:通常(M3)、警報(M4)、緊急(M5)、オーバーライド時も表示保持 非常停止:全出力停止+換気ON 🪜 ラダー図形式(擬似記述) [初期設定] LD SM0 MOV 22, D2 ; 温度設定 MOV 50, D3 ; 湿度設定 SET M3 ; 通常モードON [H2センサー検知処理] LD X0 AN X5 ; オーバーライドなし AN X6 ; 非常停止なし SET M2 ; H2アラーム SET M5 ; 緊急モード OUT Y5 ; ブザーON OUT Y6 ; 非常換気ON RST M3 [温度高⇔低の排他制御] LD D0 > D2 OUT M10 ; Temp_High LD D2 > D0 OUT M11 ; Temp_Low LD M10 AN M5 AN X5 SET M0 OUT Y0 ; チラーON OUT Y2 ; DAHU冷却バルブON OUT Y3 ; FANBANK1 OUT Y4 ; FANBANK2 LD M11 AN M5 AN X5 SET M0 RST Y0 RST Y2 OUT Y3 ; FANBANK1のみ(最小換気) RST Y4 [湿度高⇔低の排他制御] LD D1 > D3 OUT M12 ...

データセンター電気設備のPLCは何言語?

データセンターの電気設備で使用されるPLC(Programmable Logic Controller:プログラマブルロジックコントローラ)のプログラミング言語は、基本的にIEC 61131-3という国際規格に基づく言語が使用されます。以下の5つが主な言語です: --- ✅ よく使われるPLC言語(IEC 61131-3準拠) 言語名 説明 特徴・用途 LD(Ladder Diagram / ラダー図) 電気回路図に似た図式言語 最も一般的。電気系技術者に馴染み深い FBD(Function Block Diagram / 機能ブロック図) ブロックの入出力を接続する図式言語 制御ロジックが視覚的で理解しやすい ST(Structured Text / 構造化テキスト) 高水準のテキスト型言語(Pascal風) 複雑な処理・計算に向いている IL(Instruction List / 命令リスト)※非推奨 アセンブリ風のテキスト型言語 現在は非推奨・後継はST SFC(Sequential Function Chart / 順序機能チャート) フローチャートに似た構造化言語 状態遷移に基づく制御向け(電源制御等) --- ✅ データセンター向け電気設備で多く使われる言語(実態) ラダー(LD):変電・分電、UPS制御、非常用電源制御、空調制御など、現場保守性が重要な系統では依然として主流。 FBD:監視機能・安全制御・インターロックなどの可視性重視の部分で多用。 ST:エネルギー効率制御や通信処理(Modbus, BACnet, SNMPなど)など複雑なロジックが求められる場面で使われる。 --- ✅ PLCメーカーごとの傾向 メーカー よく使われる言語 三菱電機(MELSEC) LD、ST(GX Works) オムロン LD、ST、FBD シーメンス(Siemens) FBD、ST、SFC(TIA Portal) シュナイダーエレクトリック FBD、LD、ST(EcoStruxure Control Expert) Rockwell Automation(Allen-Bradley) LD、ST、FBD(RSLogix / Studio 5000) --- ✅ まとめ > データセンターの電気設備に使われるPL...

任意の文字を表示するGUIプログラムをST言語で書いて

ST言語 (Structured Text) は主にPLCプログラミングで使用される言語であり、GUI作成には通常不向きです。 GUIプログラムを作成する場合は、他の言語や環境 (C#、Python、LabVIEWなど) が適しています。  ただし、PLC用のHMI (Human Machine Interface) をST言語で制御する場合の簡単な例を以下に示します。 この例では、文字列を表示するロジックをST言語で記述しますが、実際の表示部分はHMIソフトウェア (例: CODESYS Visualization、TIA Portal、Beckhoff TwinCAT HMIなど) で作成する必要があります。 ``` PROGRAM StringDisplay VAR DisplayText : STRING(255) := 'Hello, World!'; (* 表示する文字列 *) DisplayEnabled : BOOL := TRUE; (* 表示の有効/無効 *) TextColor : INT := 16#0000FF; (* 文字色 (ここでは青) *) BackgroundColor : INT := 16#FFFFFF; (* 背景色 (白) *) BlinkTimer : TON; (* 点滅用タイマー *) BlinkState : BOOL := FALSE; (* 点滅状態 *) END_VAR (* 文字列を点滅させるロジック *) BlinkTimer(IN := DisplayEnabled AND NOT BlinkTimer.Q, PT := T#1S); IF BlinkTimer.Q THEN BlinkState := NOT BlinkState; BlinkTimer(IN := FALSE); END_IF (* HMIに表示する文字列の制御 *) IF DisplayEnabled THEN IF Blink...

ST言語でテトリス!CODESYSでテトリス!統合版

# CODESYS用テトリスゲーム完全実装 (ST言語)  以下は、入力制御と表示用グリッド実装を含む完全なST言語ソースコードです。 このコードはCODESYSのSTエディタでそのまま使用できます。   ```st PROGRAM TetrisGame VAR // ゲームグリッド (20行 x 10列) Grid: ARRAY[1..20, 1..10] OF INT; // テトリミノの形状定義 (7種類) Shapes: ARRAY[1..7, 1..4, 1..4] OF INT := [ // I型 [[1,1,1,1], [0,0,0,0], [0,0,0,0], [0,0,0,0]], // O型 [[1,1,0,0], [1,1,0,0], [0,0,0,0], [0,0,0,0]], // T型 [[1,1,1,0], [0,1,0,0], [0,0,0,0], [0,0,0,0]], // L型 [[1,1,1,0], [1,0,0,0], [0,0,0,0], [0,0,0,0]], // J型 [[1,1,1,0], [0,0,1,0], [0,0,0,0], [0,0,0,0]], // S型 [[0,1,1,0], [1,1,0,0], [0,0,0,0], [0,0,0,0]], // Z型 [[1,1,0,0], [0,1,1,0], [0,0,0,0], [0,0,0,0]] ]; // 現在のテトリミノ ...

ST言語でテトリス!CODESYSでテトリス!

# CODESYS用テトリスゲーム (ST言語実装)  以下は、CODESYSで動作するテトリスゲームのST言語実装です。このコードはCODESYSのSTエディタで使用できます。   ## 主要な機能構成  1. **メインプログラム** - ゲームのメインループ  2. **テトリミノ制御** - ブロックの移動、回転 3. **グリッド管理** - ゲームフィールドの状態管理 4. **衝突判定** - ブロックの移動可能判定 5. **行消去処理** - 完成した行の消去とスコア計算 ## 完全なSTコード ```st PROGRAM TetrisGame VAR // ゲームグリッド (20行 x 10列) Grid: ARRAY[1..20, 1..10] OF INT; // テトリミノの形状定義 (7種類) Shapes: ARRAY[1..7, 1..4, 1..4] OF INT := [ // I型 [[1,1,1,1], [0,0,0,0], [0,0,0,0], [0,0,0,0]], // O型 [[1,1,0,0], [1,1,0,0], [0,0,0,0], [0,0,0,0]], // T型 [[1,1,1,0], [0,1,0,0], [0,0,0,0], [0,0,0,0]], // L型 [[1,1,1,0], [1,0,0,0], [0,0,0,0], [0,0,0,0]], // J型 [[1,1,1,0], [0,0,1,0], [0,0,0,0], [0,0,0,0]], // S型 [[0,1,1,0], [1,1,0,0],...

ST言語の無料IDEは存在するか?

ST言語(Structured Text)の無料IDEはいくつか存在します。ST言語は主にPLC(プログラマブルロジックコントローラ)のプログラミングで使われるIEC 61131-3規格で定められた言語の一つです。 代表的な無料IDEとしては、以下のようなものがあります。  * CODESYS:    CODESYSはIEC 61131-3に準拠したプログラミングツールで、ST言語を含む複数の言語に対応しています。開発環境自体は無料で利用できます。ただし、ソフトウェアPLCとしてCODESYSを実行する場合にはライセンスが必要になることがあり、無料ライセンスだと2時間でPLCが停止するといった機能制限がある場合もあります。    * 特徴: 統合開発環境(IDE System)として、プログラミングエディタ、HMI開発環境、オンラインデバッグ機能が統合されています。  * Visual Studio Code (VS Code):    Microsoftが提供する無料のコードエディタです。ST言語に直接対応するものではありませんが、様々なプログラミング言語に対応しており、拡張機能をインストールすることで、ST言語のような高水準言語の記述にも利用できる可能性があります。ただし、PLCへのデプロイやデバッグといったPLC特有の機能は、別途ツールや連携が必要になることが多いです。  * STM32CubeIDE:    STマイクロエレクトロニクス社が提供する、STM32マイコン用の無償開発ツールです。これは組み込み系の開発に特化したIDEで、C言語やC++が主な言語ですが、STマイクロエレクトロニクス製品を扱う場合には非常に強力な選択肢となります。 注意点:  * ST言語の用途: ST言語は主にPLCなどの産業制御分野で使われるため、単にST言語を記述・コンパイルできるだけでなく、実際のPLCに接続してデバッグや実行ができる環境が必要になることが多いです。上記の無料IDEの中には、開発環境自体は無料でも、PLCとの連携やソフトウェアPLCの実行に制限やライセンスが必要なものがある点に注意してください。  * PLCメーカー固有のIDE: 各...

Amazonデータセンター電気設備のPLCプログラムをST言語で書き換えてみた

# AWSデータセンター電気設備制御プログラム (ST言語版)   以下は、AWSデータセンターの電気設備を制御するためのST (Structured Text) プログラムです。 このプログラムでは主電源監視、非常用電源制御、温度管理、電力負荷監視などの機能を実装しています。 ```text FUNCTION_BLOCK DataCenterControl VAR_INPUT // センサー入力 MainPowerStatus : BOOL; // 主電源状態 (TRUE=正常, FALSE=停電) Temperature : REAL; // 温度センサー値 (°C) Humidity : REAL; // 湿度センサー値 (%) PowerLoad : REAL; // 電力負荷 (%) END_VAR VAR_OUTPUT // 制御出力 UPSControl : BOOL; // UPS制御 (TRUE=作動) GeneratorControl : BOOL; // 発電機制御 (TRUE=作動) CoolingSystem : BOOL; // 冷却システム制御 (TRUE=作動) CriticalAlarm : BOOL; // 重大アラーム (TRUE=異常) WarningAlarm : BOOL; // 警告アラーム (TRUE=異常) END_VAR VAR // 内部変数 MaxTemperature : REAL := 27.0; // 許容最大温度 MinTemperature : REAL := 18.0; // 許容最小温度 CriticalTemperature : REAL := 32.0; // 危険温度 PowerCriticalLevel : REAL := 85.0; // 危険電力負荷レベル // タイマー UPSRuntime :...