実はTwinCATがNOSQL Databaseにも対応できるって知っていますか?
今回はBeckhoff TwinCAT3とTF6420を使用し、Raspberry pi4にインストールされたMongoDBと接続し、コマンドを送信します。
最初はTF6420を簡単に紹介し、TwinCAT3にDBを追加する方法を説明します。
さ、始めよう!
TF6420?
こちらはTF6420 TwinCATの全体構造図です。
Basic concept
TwinCAT Data baseは、すべてのTwinCAT Userが簡単にControllerとDatabaseを接続できるように設計されています。TwinCATのDatabase serverは、基本的にこの4つのModeがあります。
Configure mode
プログラムを実装することなく、グラフィカルな設定からDatabaseを接続します。
Configuration Modeでは、作業の大部分は設定ツールで行われます。必要なDatabaseとAutoLogグループの設定をすれば、TwinCATの起動時に、設定されたData baseと自動的に通信が直接確立されます。Manual Modeを選択した場合、Function Block ”FB_PLCDBAutoLog”または”AutoLog”で有効にできます。
PLC Expert mode
こちらはPLC Programmer向けのSolutionで、PLC Function Blockに基づくData baseと接続し、ほぼすべてのData baseコマンドはData base Serverから自動的に生成されます。
このModeではDatabase設定のみがConfiruraorから設定し、他の機能はPLC コードに実装されます。
そしてFunction Block FB_PLCDBCreate を使用すると、Configuratorを使用せずに、PLC からデータベース自体を設定することもできます。もちろんTwinCATはデータを読み取りと書き込み用のFunction Blockも用意されています。
SQL Expert mode
SQL Expert Modeでは、PLCでInsert、Select、UpdateなどのSQLコマンドを組み立て、TwinCAT Database Server経由でデータベースに送信できます。これは非常に柔軟で強力なオプションです。データベース内のストアドプロシージャも、PLCから呼び出すことができます。
NoSQL Expert mode
NoSQL Expert Modeでは、InsertやFindなどのNoSQL Queryや、その他多くのデータベース固有のQueryをコンパイルし、TwinCAT Database Server経由でDatabaseに送信することができます。階層構造や配列など、新しいデータスキーマにも対応できます。がサポートされています。
Implementation
最初のMongoDB接続Tutorialでは、TwinCATのData base ServerとMongoDBを接続する設定や注意事項を紹介します。MongoDBはRaspberry pi4にインストールされています。
Reference Link
Configuration
Add TwinCAT Database Server Project
Solutionから右クリック>Add>New Itemします。
Installed>TwinCAT Connectivity>Empty TwinCAT Database Server Projectを選び>Okします。
Done!アタrさいいTcDbServerが追加されました。
Add New Database
次はTcDbServerから新しいDatabaseを追加しましょう。TcDbServer>右クリック>Add New Databaseをします。
Done!新しいDBが追加されました。
DBをダブルクリックするとDB Serverの追加などの細かい設定を行います。
Select Database Type
まずDatabase Typeから選びましょう。
今回の記事はMongoDBを使用するので、MangoDBを設定してください。
Done!MongoDBのConfigurationが作成しました。
Connection String Type
Standard Connection String Format DefaultのままでOKです。
Server
ServerはMongoDBがインストールされたデバイスのIP:portになります。
今回の例では192.168.5.144:27017です。(27017はMongoDBのDefault portです)
実際MongoDBのConnection pathを確認したいならVSCodeのMongoDBを使ったほうが便利です。CONNECTIONS>右クリック>Copy Connection StringすればOkです。
実際はこのようなPathが取得できます。
mongodb://192.168.5.144:27017/
Database
こちらはTwinCAT TF6240にアクセスするDatabase名になります。該当するDatabaseが見つからない場合はServerに新規作成することになります。
Autherication
今回は認証なしなので、Autherication FieldはNoneのままでOk。
Check
DBの接続設定が完了したらConnection StringにDBのアクセスPathが表示されます。
CHECKボタンをクリックし接続テストを行います。
Done!問題なく接続できました。
If Error…
もしTwinCATとDatabase Server接続できない場合、Error Listから該当するエラー情報を確認できます。
DBID
このDBIDは次のImplementationのプログラム作成するときに非常に大事です。
Download
ConfigurationをRuntimeにDownloadします。
TcDbServer>右クリック>Active ConfigurationすればOKです。