SelmoStudio#Tutorial01_Codesysのプログラムを生成しよう

今回の記事はSelmo Studioを使って簡単なプログラムの生成方法をFlowから1からCodesysと連携する手順を説明します。また、Selmo StudioのHMI機能も少しお見せします。

さ、はじめよう。

Reference Link

SelmoStudio#Let’s Try the Code Generator Solution and Test with TwinCAT3!

Implementation

Machine Simulation

こちらは今回FactoryIOのSimulation 装置です。

Flow

こちらは今回記事のFlowです。

Logic Layer

最初にLogic Layerを作成します。

Add Step

Stepを追加します。

前回の記事ではStepに関しては説明しましたので、ここでは説明いたしません。

Flow

こちらは今回記事のLogic Layer構成になります。

System Layer

次はSystem Layerを開き、制御のMatrix表を作成します。

System Layer画面には先程定義したStepが表示されます。

Zone1:Input, Wait the Button is pressed

Zone1を定義します。こちらはスタートボタンを押した動作を作ります。

Zone Inを追加します。

Zone Inが追加されました。Zoneに関しては前回の記事で紹介しましたので、ここでは詳しく説明しません。

Zone Inに適切な名前を設定します。

Zone Inの名前を設定し、Zone Inputを”i_xStartButton”に設定します。

その”i_xStartButton”はInput信号になります。

Zone2:Input, Wait the Button is Released

Zone2を定義します。こちらはスタートボタンを押したあと離した動作を作ります。

先と同じようにZone Inを追加し、適切な名前を定義しましょう。

Zone InputはZone1のi_xStartButtonと同じ信号に設定し、Input invertedのCheckboxを入れます。それはi_xStartButtonの反転信号を監視することを意味し、つまりFalse=条件成立になります。

Done!Input信号がInvertedされたZoneでは青いIconがついています。

Zone1、Zone2にもSを設定します。

Group your Zones

複数のZoneをアプリケーションの動作によってGroup化し管理できます。グループ化したいZoneを複数選択し>Edit Zoneをクリックします。

Group Nameを設定し>Okで確定します。

Done!

Zone3:In-OutLoad the Packages

Zone2を定義します。こちらはFactoryIOのPackageを生成する動作を作ります。

Zone In-Outを追加します。

Done!こちらのZoneはStep3”箱を生成する”に割り付けます。

Zone Inputの信号をInvertedしたi_xSensorB1に設定します。

Zone Outputの信号をo_xLoadPackageに設定します。

つまり、o_xLoadPackageがTrueになり、i_xSensorB1=False(Sensorが箱を検知した)、次のStepに進みます。

Fully qualified variable nameでは実際PLC XML Formatとして出力したとき、該当するZoneの入出力の変数名になります。

Done!

Zone4:Input,Wait Sensor1

Zone4を定義します。こちらはSensor1が箱を検知した動作を作ります。

Zone Inを追加します。

Zone Inputをi_xSensorB1に定義します。

こちらのZoneはStep4”箱をConveyor1に搬送する”に割り付けます。

Zone5:In-Out,Transfer package to Conveyor End

Zone5を定義します。こちらはConveyor1で箱を搬送する動作を作ります。

Zone In-Outを定義します。

次はConveyor1をSensor 2がTrueになるまで(箱が検知した)出力する動作を作成します。

Zone Inputをi_xSensorB2の反転信号に定義します。

Zone Outputをo_xConveyro1に定義します。

そしてZone OutputのOutput Group ”Conveyor1”に設定します。

Zone5を定義し、Step4に割り付けました。

Zone6:In-Out,Transfer Package Between Conveyor1 and Conveyor2

Zone6を定義します。こちらはConveyor2で箱を搬送する動作を作ります。Conveyor1とConveyor2を同時にONしないと、箱がConveyor1からConveyor2に搬送できませんので。

Zone In-Outを定義します。

Zone Inputをi_xSensorB2信号に定義します。

Zone Outputをo_xConveyro1に定義します。

そしてZone OutputのOutput Group ”Conveyor1”に設定します。

Zone6をStep5 Transfer Package Between Conveyor1 and Conveyor2に割り付けました。

Zone7:In-Out,Transfer It to End of Conv2

Zone7を定義します。こちらのZoneはConveyor2がSensor3=True(箱が検知した)するまでONする動作を作ります。

Zone7を定義します。こちらはConveyor2で箱を搬送する動作を作ります。

Zone Inputをi_xSensorB3の反転信号に定義します。

Zone Outputをo_xConveyro2に定義します。

そしてZone OutputのOutput Group ”Conveyor2”に設定します。

Zone8:End

Zone8を定義します。こちらのZoneはConveyor2がSensor3=False(箱が運び終わった)するまでONする動作を作ります。

Zone In-Outを定義します。

Zone Inputをi_xSensorB3信号に定義します。

Zone Outputをo_xConveyro2に定義します。

そしてZone OutputのOutput Group ”Conveyor2”に設定します。

Output Group?

ここでOutput Groupの説明します。

こちらはGroup設定したOutputです。

こちらはGroup設定しなかったOutputです。みなさんも気付いたかもしれませんが、Group設定したOutputはOR条件で出力する代わりに、Group設定しなかったOutputはSelmo Basic LibarayのMethodから直接出力します。

なので、複数のZoneで同じ出力をON/OFF制御したい場合、Group設定する必要があります。その設定をしなかったら、出力の更新動作が変になります。

Generate Code

ここまできて、Generate PLC-CodeでPLCコードを生成します。

Import the PLC Code

Applicationを選択した状態でProject>Import PLCOpenXMLをクリックします。

すべて選択し、OKで進みます。

Done!

Import Libaray into Codesys

Selmo StudioでCodesysのSelmo ライブラリをExportし、Codesysにインストールします。

Libarary Repositoryをクリックします。

Installをクリックします。

先ほどExportしたライブラリを選びます。

最後はAdd LibraryでSelmo Basic Libarayを追加します。

Program

次はGlobalControl()とGlobalUtilities()を呼び出します。

Configure OPC UA in Factory IO

FactoryIOにOPC UA Serverとして設定してください。

IOをOPC UA ServerとMappingします。

Configure the OPC UA Target

Target SystemでCodesys TargetするHardwareを設定します。

Generate HMI

今回の記事ではHMIの設定を説明しませんが、Selmo Studioでは自動的にHMIを生成することができます。Generate HMI and start the executableをクリックします。

Done!HMIが自動生成され、起動しました。

Go to Auto Mode

赤枠のボタンをクリックしMenuを展開します。

Done!

AutomをクリックしシステムをAutoModeにシフトします。

下図のような操作になります。

Start!

HWZoneのボタンを3秒長押しでStartします!

Done!シーケンスが起動しました。

Monitor From Selmo Studio

System LayerでConenct to PLCのボタンをクリックすれば、Selmo Studioから現在状態を監視できます。

Done!

Result

こちらの動画で実際の動作を確認できます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする