今回はCodesys CPUと繋がっているEXOR XA5を使用しRaspberry にインストールされているPostgreSQL Serverと接続する・コマンド送信する方法を紹介します。
さ、始めよう!
Reference link
PostgreSQL
http://soup01.com/ja/category/postgresql/
EXOR
http://soup01.com/ja/category/exor-ja/
Implementation
EXOR Side
Enable Database
はじめにDatabase Linksの機能を有効にする必要があります。Configuration>Database Links>右クリック>Enableをクリックします。
Database link画面が表示されました。
Add Link
+のAdd Linkボタンで新しいDatabase接続を追加します。
Done!新しいDatabase Linkが追加されました。
Property
先程追加したDatabaseの接続設定を行います。
Name
Database Link名になります。ここはわかりやすい名前でOKです。
OKですすみます。
Type
Jmobile Runtimeと接続するDatabaseの種類です。
今回はPostgreSQLにします。
IP Address
PostgreSQL Server のIPアドレスを設定します。
Port
PostgreSQL Serverの接続Portを設定します。(Defaultでは5432です。)
User name/Password
PostgreSQL ServerにLoginするためのUser Name/Passwordを設定します。
Database
DatabaseはEXORパネルがPostgreSQL ServerにアクセスしたいDatabase名を設定します。(該当するDatabase名がなければ自動新規作成します)
Add Protocols
次はProtocolsを追加します。
Add Protocolでプロジェクトに新規Protocolを追加しましょう。
System Variablesを選択します。
PLC Modelsを”Default”に設定し、Okで進みます。
Done!System Variables のProtocolが追加されました。
Add tags
次はTagsを追加します。
System Variablesを選び>+ボタンで新しいTagを追加します。
System Variablesの定義画面が表示されます。
Memory TypeのDrop-Listから以下のData base変数があります。
- Database link status
- Database link error count
- Database link error message
Done!
Screen
次は画面を定義します。
DBInit
最初はデータベースを初期化するボタンを設定します。
ActionにはDBInitの動作があります。
Action PropertiesのLink Nameのところに、先程設定した接続Serverを選びましょう。
DBWriteTags
次は該当するDatabaseにあるTagsを書き込む動作を設定するため、”DBWriteTags”を選びます。
LinkNameは先程と同じDatabaseを設定します。
Tag namesに+のボタンから該当する動作を書き込むTagsを設定します。
Select Tagsの画面が表示されます。
今回は3つのTagsをCheck入れ、Okで進みます。
Done!
Add DB table
今度は画面にDB表示するため、Tables>DB table data sourceを画面に追加します。
Done!DB ICONの部品が追加されましたが、この部品は実際の画面に表示されません。
Database Link
こちらはTableDB Tableの設定画面です。
Database Linkから接続するデータベースを設定します。今回は”MyServer”です。
DB Query
TableDB は裏でデータベースにQueryを送信するので、Queryコマンドを入力する必要があります。このために…ボタンをクリックします。
SQLの編集画面が表示されます。
Editorで以下のコマンドでtags Tableからすべての tagname,tagvalue値を取得します。
SELECT tagname,tagvalue FROM tags; |
Delect colums in the queryのボタンでQueryの検証ができます。
Processing…というメッセージが表示されまうs。
Done!Columsでtagname,tagvalueの項目が表示されたらコマンドが問題なく、なおかつ成功にデータを取得できることを示しています。
Done!これでOKです。
RefreshDBTable
次はDatabaseのTagsの更新をトリガーする動作を設置するため、”ReflreshDBTable”を選びましょう。
Data SourceはReflreshするデータベースを設定しましょう。
Data Sourceは先程追加したDB Tableを設定しましょう。
Add table
今度はデータベースの項目を表示するためTableを追加します。
Done!Tableが追加されました。
Tableを見やすい大きさに調整します。
Add Display Item
Tag nameを表示するLabel・Tag Valueを表示するNumericの部品を追加します。
Labelの表示項目はTableDBSrcWgt(先程のStepで追加されたデータベーステーブル)>DBDataFields>Colum1を設定します。
Numericの表示項目はTableDBSrcWgt(先程のStepで追加されたデータベーステーブル)>DBDataFields>Colum2を設定します。
Error Messageの文字列表示はErrormessageを設定します。
Error Counterの表示項目はErrorCountを設定します。
Add DB Status Message
数字に該当する文字列を表示させるMessage Text部品を追加します。
Finally Screen
こちらは最後のScreenです。
Configure Scheduler
次はJMobileのScheduler機能を使用し、周期でデータベースにQueryを送信するようにします。
Scheduler画面が表示されます。+ボタンで新しいScheduleを追加します。
新しいScheduleが追加されました。
Scheduleするタスクを設定するためにSchedule Fieldにある…ボタンをクリックします。
Scheduleの設定画面が表示されます。
Type=Everyを設定すると周期実行になります。
Time=00:00:01を設定すると1sの周期で実行することになります。
次は周期で実行したいActionを設定します。
DBWriteTagのActionを設定すれば1s周期でデータベースにQueryを送信できます。
DBWriteTagのActionは先程のTableで設定した動作と同じです。
Result
From EXOR Display
PLC Runtimeにある変数はデータベースに書き込まれました。
そしていまのStatusはOnLine(Ready)になっています。
下記のような操作になります。
From Terminal
下記のコマンドでxa5 Databaseを切り替えます。
postgres=# \c xa5 You are now connected to database “xa5” as user “postgres”. |
以下のコマンドで tagname,tagvalue項目を取得します。
xa5=# SELECT tagname,tagvalue FROM tags; tagname | tagvalue ———————————————+———- Application/GVL_FactoryIO/iFactoryIORunning | 1 Application/GVL_FactoryIO/qCounter1 | 137 Application/GVL_FactoryIO/qCounter2 | 117 Application/GVL_FactoryIO/qCounter3 | 87 (4 rows) |