前回はLocal変数でプログラムを作成しましたので、次は実際のIOをCPUの変数に割り当ててプログラムしてみようと思います。よろしくお願いします。
PLCNEXTのStarter kitではDI8/1 DO8/1の入出力モジュールとAI2 AO2のアナログ入出力モジュールが取り付けられたのでこちらのモジュールを直接使用します。
参考LINK:
実際にモジュールの上にも型式がのっています。
Insert Modules
ではまずモジュールを追加します。
Axioline Fをダブルクリックします。
このようなモジュール構成画面が表示されます。
TypeのFieldからDevices>Axiocontrol>Devices>Phoenix Contact>AXL Fでモジュールの種類を選べます。
まずは入出力モジュールです。Digital input and output>AXL F DI8/1 DO8/1 1Hを追加します。
このようにSlot1が入出力モジュールに追加されました。
次はアナログ入出力モジュールです。AXL F> AXLF AI2 AO2 1H Rev. >=02/1.00を選択します。
Slot2にアナログ入出力モジュールが追加されました。
DI/DO variables
まずはDI/DO モジュールから始めます。
次はLocal>Programsで前の記事で作成したプログラムを開きます。
VariablesのTab開き、変数定義のUsageのところにExternalに変更します。
プログラム自体はわからないですね。
Assign
変数が定義されたら、次は実際のIOにプログラムの変数と紐つけます。
赤枠のところをクリックします。
Process data Itemのところを押すと自動的にSortします。
dio-1 はその入出力モジュールですね。
dio-1/IN01・dio-1/IN02・dio-1/OUT00をVariableのところに先Externalに変更した変数に割り付けます。
Starter kitから見ますと、スイッチ1と2はオレンジ枠のところですね。
Download
Write and Start ProjectでProjectをダウンロードします。
実機のモジュールみますと、上と下2つのLEDも点灯になりました。
Test
Monitorします。Data ListのTabを開きます。
スイッチひとつをOnしたらValueもFalseからTrueに変わります。
2つのスイッチ同時にONすれば、OutputもONになります。
実機ではこんな状態ですね。
AI/AO Variables
では次AI/AOモジュールを設定したいと思います。
モジュールをクリックします。
ParametersのTabで各Channelの入力RangeやFilterなど設定できます。
今回のTutorialでは0-10vにします。
AI Channel
まずアナログ入力からやります。
作成したプログラムをクリックします。
以下のように3つの変数を定義します。
i_i32AIin1はモジュールからのアナログ入力値です。
i_i33AiOut1はモジュールからのアナログ出力値です。
r32AIIn1Valueは内部変換用の変数です。
Manual Download
下記のLinkアクセスしモジュールのManualをダウンロードします。
DownloadsのTabを開きます。
英語でよいので、ダウンロードします。
Reference From Manal
Manualによりますとこのアナログ入出力は16Bitで15Bit+1Sign bitです。
15Bitは7FFFです。
0-10vの値は7F00(32512)だと+10.837vになります。それ以上の値だと+10.837vになり、8001だとOverRangeとかの特別の意味を持っています。
Programming
ではエラー値、ScalingのUpper(10v)と10vのアナログ入力値(32512)をさらに定義します。
次はまたPLCの型式に乗ってるところをクリックします。
追加したExternual 変数をモジュールのaio-1/IN01と aio-1/OUT01に割り付けます。
最後は簡単なScalingプログラムを作成します。
Result
Starter kitのButtonを回すと、0-10vの電圧がアナログ入力 Channel1に流れます。
このように、0-32xxxくらいの値が読み取り、そして0-10に変換します。
AO Channel
Anlogs outputsは以下のように電圧ならO02とO22、電流ならO13とO33端子を使用します。今回は0-10vなのでO02とO22を使いますね。
Programming
先のNewProgramからr32AO1Valueの内部変数を追加します。
前のStepからScalingされた0-10vもう一度0kら32512にScaling戻りそのままアナログ出力します。
Result
結果はこのようですね。アナログ入力が5v入力されたら、そのまま5vにアナログ出力に反映します。