プログラマブル制御器[PRC]
Location : Modulator/PRC
外形
説明
PRC
はプログラムより任意の制御を行う制御器です。
PRC
を使用すればほとんどのデジタル制御が可能となります。
Example
PRCブロックの記述例です。PRCブロックにコピーして実行してください。
カウントアップする例
if(i>1000){
i = 0;
}
else{
i++;
}
setoutvar(i);
50Hzのサイン波を出力する例
y = sin(50*2*PI*t);
setoutvar(y);
プログラマブル素子言語文法で示される表記法を用いて、プログラムを記載することが可能です。
オプションとしてアクティブ(Active)、後置(Post)を選択できます。
後置(Post)を選択すれば、動作周期の直後でプログラムが実行されます。
そのため、この場合のPRC
の動作周期はメイン周波数またはFRD周波数で決定されます。
選択を外した場合はメイン周期の直前で実行されます。
Note
後置(Post)を外した場合はFRDに登録できません。
また制御順序については制御順序を参照してください。
旧バージョンとの仕様変更について
PRC素子内のパラメータ保持について仕様変更が行われました。
詳細につきましてはver.1.3の仕様変更と後方互換性についてを参照してください。
パラメーター
パラメーター | 内容 | 単位 | 入力範囲 |
---|---|---|---|
Symbol | シンボル | - | - |
例
回路から電圧をサンプリングし、Switch素子のDutyにセットする
Vout = output("Vout1","V","AVE");
D = 10 - Vout;
setoutvar(D);
setparam("Q1","T0",D);
Vout1
というオープン素子
と、Q1
というPWMスイッチ
があったとすると、上記の様に機能関数を用いることでPRC
を用いて演算し、時比率をセットすることが可能です。ここで、機能関数
setoutvar()
は変数の値を出力変数にセットする役割があります。これにより、実行中の変数の波形を確認することができます。
関数を定義する
PRC
は関数を定義することができます。
関数はプログラム先頭で定義する必要があります。以下は関数ADDを定義し本文中で使用する例です。
function ADD {
gain = 10;
OUT = gain * (IN1 + IN2);
}
//body
setvar("", "ADD_IN1", 5); // ADD関数のIN1に5を設定
setvar("", "ADD_IN2", 10); // ADD関数のIN2に10設定
ADD(); // 呼び出し実行
ans = var("", "ADD_OUT"); // 結果をADD関数のOUTから取得
定義した関数ADDはIN1
とIN2
という変数を持ちます。変数の宣言は必要ありません。
この変数に対して、機能関数setvar()
を用いて関数ADDに値を渡します。
変数名は例の様に関数名+内部変数名
で定義されます。
出力変数は、var()
を用いて参照することが可能です。
プログラムに関するエラー
プログラムに関するエラーに関してはプログラムに関するエラー対処方法を参照してください。
参考
プログラマブル素子言語文法
自動コード生成
プログラムエラー
メイン周波数
FRD周波数
制御順序
ver.1.3の仕様変更と後方互換性について