EXOR#Part13_PostgreSQL Serverと接続しよう

今回は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)
Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

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

フォローする