計測自動制御学会産業論文集
Vol.2, No.11, 84/87 (2003)<開発・技術ノート>

PLCプログラミング言語STによる制御理論(スライディングモード)の実装†
坂 本 憲 昭 *Realization of Sliding Mode Controller by using ST on PLC
NORIAKI SAKAMOTO*
Although many researchers have proposed various control technology, it is difficult to apply thesetechnologies to a real plant because of the shortage of software environment of the plant controller. In thisreport, the realization of self-tuning sliding mode controller on PLC (programmable logic controller) using ST(structured text) will be verified through experiments.
Key Words: IEC61131-3, ST, sliding mode control, self-tuning

１. はじめに

２. ST について

多くの研究者により様々な制御理論が提案されているが，その理論を現実に稼動しているプロセス系に適用することは容易ではない．なぜなら，研究に使われるハードウェアはパソコン，ソフトウェアは C 言語や Visual Basic（ 米国Microsoft 社の登録商標）などが多いのに対し，現実に使われ て い る 制 御 装 置 は ， PLC （ Programmable LogicController）や DCS （Distributed Control System）がほとんどであり，ラダー図言語かメーカー固有のプログラミング言語で制御則を記述しなければならない．このような理由か
ら，開発した制御理論を移植することが容易で，かつ現場に受け入れられる制御機器が望まれる．
この要望に対し，製造現場という環境を考慮してPLCを選択すれば，パソコンから移植する際の開発効率を考えてC言語９）またはBASIC言語10）をプログラミング言語として使用可能なPLCを考える．これらはメーカーが単独に提供しており機種の制約を受けるが適用事例も公表されている11）．
一方最近では機種（メーカー）を限定しない国際規格のプログラミング言語のひとつとしてST（Structured Text：構造化テキスト言語）が公開された．数社のメーカー（松下電工，富士電機，三菱電機，横河電機，日立，シーメンス，ロックウェル，シュネデールエレクトリック．2003 年 8 月現在．
筆者の個人的調査にて不十分な点があることをお許し願う）がサポートしており，制御理論をこのST でプログラミングして実現することが有効と考えている．しかしながら，STを用いた制御事例の紹介は海外ではあるが 2), 4)，国内では皆無である．
そこで本稿の目的は，具体的な制御理論として筆者らが研究しているセルフチューニング型のスライディングモード制御を取り上げてプロセス系の簡単な実験を行い，この有効性を評価することにある．
† SICE Annual Conference in Fukui 2003で発表* 職業能力開発総合大学校電子工学科(〒229-1196 神奈川県相模原市橋本台 4-1-1）* Polytechnic University(Received August 7, 2003)843), 5)

STは，PLCのソフトウェアオープン化に対応するため
国際標準プログラミング言語IEC61131-3（JIS B 3503）12) で規格化された５つの言語，・LD（Ladder Diagram：ラダー図言語）
・FBD（Function Block Diagram：ファンクションブロ
ックダイヤグラム言語）
・IL（Instruction List：命令リスト言語）
・SFC（Sequential Function Chart：シーケンシャルファンクションチャート）
・ST（Structured Text：構造化テキスト言語）のひとつである．この規格化の目的は，・機種に依存しない・構造化プログラミングにより保守しやすい
・再利用性の高い部品化・厳密な文法チェックによるバグの減少などにある．ST はテキスト型のプログラミング言語であり，IF 文，CASE 文，繰り返しなどの命令をもつ．三角関数，指数，対数，平方根，絶対値などの算術関数をサポートし，３次元までの配列，構造体，関数の定義と呼び出しが提供されている．さらに記述は C 言語に似ており，C 言語で開発した制御理論を移植しやすい．参考のため C 言語と ST のおもな命令比較を付録Ⅰに示す．

３. セルフチューニング型スライディングモード
3.1 セルフチューニング型スライディングモード制御
スライディングモード制御（Sliding Mode Control，以後SMC）は，パラメータ変動や外乱などに対して強いロバスト性をもつ．これまで数多くの実際のメカニカルなシステムや実プロセスにも適用され，その効果が確認されている．
しかしながらプロセス系への適用事例は少ない．理由のひとつはSMCが制御対象のモデルを要することである．そこで，セルフチューニング型のSMCが検討されている6) ~ 8)．

計測自動制御学会産業論文集
Vol.2, No.11, 84/87 (2003)

えることなく再利用した．このようにサブルーチンのような処理のまとまり（これを POU と称する）毎にプログラミング言語（２章に示した５つの言語）を選択できるので，ILに限らず PLC で多用されているラダーの既存プログラムをそのまま再利用することもできる．また変数の通用範囲についても C 言語と同様に各 POU が参照できるグローバル変数と，POU 内でのみ有効なローカル変数に分かれる．開発方法の詳細は例えば文献 3) を参照していただきたい．
参考までに本実験の開発環境の画面を Fig.4 に示す．Fig.4の左枠 POU の下ʻJIKOKUʼ,ʻSELF_VSCʼ,ʻSV_JIKOKUʼ
はサブルーチンであり（すなわち POU が３つ），プログラ
ム言語は上から IL，ST，IL を選択している．右枠上段には，各サブルーチンが読み書き可能なグローバル変数を，中・下段には IL と ST のソースコードを表示した．

この制御則は対象を限定するが，調整係数が少なく制御対象のパラメータを必要としない．紙面の都合で操作量 u の算出式のみを示す．
u = −YAE + γcε ⋅ sgn(cε)(1)

Y = [(1 − c)ε& − α x] ， A& E = [((c − 1)ε& + α)cε， − cεx]ここで， c 調整係数， ε 偏差， α 目標値の微分値， x 制御量である． γ の値は制御中に指数平滑法で求める8)．
3.2 スライディングモード制御の課題
SMC を適用する場合，前述のセルフチューニング型に限らず操作量を高速に切り換える必要があるため，制御装置の早い応答が要求される．切り換え遅れは操作量の激しいチャタリングを誘発する．
高速な切り換えを実現するために，アナログ回路や専用
LSI（ASIC）1) による制御則の実現が提案されている．これ
らの専用回路には劣るが，PLCの特徴に高速性（高速命令，高速処理，高速応答，高速スキャン）があり，PLCならば早い切り換えが期待できる．さらに，専用回路に比べて制御則のゲイン調整やプログラムの変更が容易という付加価値がある．

4.3 C 言語からの移植性開発効率の程度を示すため一例を述べる．本実験の制御則
はパソコンでC言語にてシミュレーションを行っている．そ４. 実験

Level Sensor

Photo.1 に示す PLC（松下電工(株) ，左側から電源，CPU＋アナログ I/O ）を用いて，セルフチューニング型 SMC の実験を行う．

Lower Valve
TankPumpPLC
Fig.1 Experimental water level control
Thermo-coupleHeater

Photo.1

4.1 実験概要
Regulator

１水槽の水位制御（Fig.1）とラバーヒーターの表面温度制御（Fig.2）を行う．目標値は共に
x = αt + β( x : 水位または表面温度，t : 時間)

PLC

Fig.2 Experimental heater control(2)としてパターンで与え，外乱として水位制御では下部の排水バルブを開閉し，表面温度制御ではランダムに冷風の吹き付けを行う．

rSUM1:= rSUM1 + rSAT * rSigma * rErr;
rSUM2:= rSUM2 + rSAT * rSigma;
rU:= rUeq + ( rSUM1 + rArufa * rSUM2 ) * rK * rSgn;

4.2 ST によるプログラミング(* MAX-MIN CHECK *)IF rU < -10.0 THEN
rU:= -10.0;
END_IF;

プログラムの一部を Fig.3 に示す．文末のセミコロンや変数の型形式が厳密な点など C 言語に近い．ここで，目標値は時間関数であり ST でも計算が可能だが，目標値の計算を他の研究ですでに IL にて作成しており，今回これに手を加Fig.3 ST Programming

85

計測自動制御学会産業論文集
Vol.2, No.11, 84/87 (2003)

4240

Temp.[ ℃]

383634
Tracking pattern
3230
28260
Fig.4 Development environment

200300Time[sec]

Fig.6 Experiment Results (Heater Control)能である．またFig.4 のような開発環境は各メーカーとも提供している12)．

400
Tracking pattern

4.4 実験結果

350

Water Level[mm]100

水位制御の実験結果を Fig.5 に示す．図中の上段が制御結果であり，下段は外乱として与えた下部にある排水バルブの開閉履歴である．温度制御の実験結果を Fig.6 に示す．温度の振れは外乱によるものである．両図とも制御量が外乱による影響を受けているが，目標パターンに拘束されており，制御則が有効に働いていることがわかる．

300
250
200

4.5 制御周期

150

水位制御のプログラムステップ数は 1136，制御周期は4.23 msec，そのばらつきは標準偏差で 0.37 msec であった
（測定結果が妥当な数値であることをメーカーに確認している．その回答を付録Ⅱに示す（メーカー了解済み））．本実
験ではこのばらつきが SMC に対して影響を与えなかったが，例えば応答が速いプロセスを制御する場合を考えれば，セルフチューニング型の SMC が要求する制御周期について今後検討する必要がある．

100
050

100

The opening of the lower valve

150
Open

200
250
Time[sec]
OpenLittle
Close

Close

Close

５. おわりにInject water into the tank from the outside

ST によるプログラミングは，C 言語からの移植が容易であり，制御理論を実装しやすいことを確認した．その一例として，高速な応答を要求する SMC を実現した．さらに，パソコンにはない PLC の下記の特徴が現場に受け入れられやすい．
・制御中に変数のモニタやプログラムの変更が可能
・既設のラダー図言語プログラムの活用が可能
・既設機器との接続性に優れる
・装置が小型化されている

Fig.5 Experiment Results (Water Level Control)の制御則のC言語サブルーチン（制御量と目標値から操作量を算出する）は 36 行である．このサブルーチンをSTに変換するのに約 5分，次にFig.4に示した開発環境の使用は初めてにもかかわらず，入出力変数の定義，他サブルーチンの組み込みとデバックを１日で完了した．このようにC言語で研究された制御理論を，ラダーを使用せずに簡単にPLCに実装可86計測自動制御学会産業論文集
Vol.2, No.11, 84/87 (2003)

・耐環境性に優れる
短所として，入力や出力などの各種データを制御中にモニタできるが，ファイルとして保存できない．事後解析するためには，データレコーダに別途出力するか，ネットワークや Web 対応機能の追加によるデータ転送が必要となる．

もちろん高速アナログ処理（0.5 msec 〜 1 msec 周期）を可能にする PLC もございますが，コスト的には同機種の数倍〜十数倍になります．コストと性能のバランスの問題ですので，この点はご容赦願います．
（松下電工(株) 制御分社 NAISFAN コールセンター）

付録Ⅰ（C と ST のおもな命令比較）
注釈文

データ型

配列
代入文

IF 文

FOR 文

CASE 文C// ------------/* ------------* /intlong int
float
char
bool
Array[5]=if ( a>=0 ) {処理;}else{処理;}for( i=0; i<=100; i++) {処理;}switch (a) {case 0: 処理; break;case 1: 処理; break;default: 処理;}

参考文献

ST(* ------------ *)1) 福島，他： FA ロボット特集

モーションコントロール

ASIC, R&D／神戸製鋼技法, 43-1, 6/9 (1993)
INT
DINT
REAL
STRING
BOOL
Array[5]:=IF a>=0 THEN
処理;
ELSE
処理;
END_IF;2)

M.KunzandG.Suss:SPS-Sprachnorm

programmiert

Antriebssteuerung, Elektronik, 1, 80/83 (1994) (in German)3) 関口隆：新しいプログラマブルコントローラのプログラミング―
IEC61131-3 による効率的プログラミング―, ISBN4-339-03171-2, コロナ社 (1999)

4) J.Bartels

andB.Scherff:

Automatisierungskonzepte

imVergleich, Elektronik, 11, 50/60 (1999) (in German)5) NAiS Control FPWIN Pro 導入ガイド, 松下電工(株) (2001)
6) 坂本憲昭：セルフチューニング型スライディングモードコントロ
ーラ，第 44 回自動制御連合講演会前刷, 714, 584/585 (2001)

FOR i:=0 TO 100 DO
処理;
END_FOR;CASE a OF
処理;
0:処理;
1:ELSE 処理;
END_CASE;

7) 坂本憲昭：ST(IEC61131-3)による制御理論の実装について, 第 31 回制御理論シンポジウム, 葉山 湘南国際村, 331/334 (2002)

8)

N.Sakamoto: Estimate of Disturbances for Self-Tuning
Sliding Mode Controller − Realization of the controller byusing ST (IEC61131-3)−, SICE Annual Conference in Fukui2003, OS-8, 福井大学 (2003)

9) オムロン(株) : SYSMAC ACE,付録Ⅱ（メーカーからの回答）

www.plcsoft.ne.jp/soft/Jpn/Info/ACE/ACEPiDefault_J.shtml
10) 横河電機(株) : FA-M3, BASIC CPU モジュール,実験に使用された PLC（FP シグマおよびアナログ I/O ユニ

www.yokogawa.co.jp/IA/fam3/products/bp20.htm

ット）の性能上，計測された結果とほぼ同じになるかと存じ

11) 江口,藤中,野口,小崎,浪江: PLC を用いたバッチ反応機のます．

モデル予測制御, 計装, 45-7, 21/25 (2002)

もともと同機種は小型 PLC ですので，高速アナログ処理を

12) PLCopen（欧州に本部を持つ IEC61131-3 の普及団体）

目的とする製品ではありません．おもに温度や圧力等のプロ

www.plcopen-japan.jp/tech.html

セス制御やインバータ制御を安価に実現できることを狙いに作られています．（筆者補足：電源，CPU，アナログ I/O ユニットで定価￥118,900）

87