今回の記事ではBeckhoffのEL6731を使用しProfibus Masterを立ち上げ、SiemensのS7-315とProfibus 通信します。
さ、始めよう!
Reference Link
EL6731?
PROFIBUS マスターターミナル EL6731 は PROFIBUS プロトコルをサポートしていて、EtherCATターミナルネットワーク内で、あらゆるPROFIBUSデバイスの統合を可能し、軸制御用の高精度アイソクロナスモードや拡張診断オプションを含むPROFIBUS技術の最新バージョンを装備しています。
また、EL6731はPROFIBUSスレーブの異なるポーリングレートをサポートしています。
- サイクルタイムは200 µsから可能
- PROFIBUS DP, PROFIBUS DP-V1, PROFIBUS DP-V2
- マスターまたはスレーブ 最大12Mビット/秒
- 強力なパラメータおよび診断インターフェース
- 各バスユーザーのエラー管理は自由に設定できる。
- バス・コンフィギュレーションを読み込み、”GSD “ファイルを自動的に割り当てることが可能
FC3101 PROFIBUS PCI カードと同様に、EL6731 も PROFIBUS ネットワークに接続できます。しかし、このターミナルは産業用 PC に PCI スロットを必要としないため、より省スペースの実装が可能です。
PROFIBUS cabling
データ伝送の物理的な側面は PROFIBUS 規格で定義されています (PROFIBUS layer 1:Physical Layer を参照)。フィールドバスシステムが使用できるエリアの種類は、伝送媒体と物理的なバスインターフェースの選択によって大きく決まります。
また、伝送の安全性に加え、バスケーブルの入手と敷設にかかる費用と作業も重要な意味を持ちます。
Termination resistors
2 台以上のステーションを持つシス テムでは、すべての機器は並列に配線さ れます。PROFIBUS ケーブルの両端は抵抗で終端する必要があります。
9-pin D-Sub
ピン 6 は DC5V を、ピン 5 はアクティブ終端抵抗用の GND を転送する。これらは決して他の機能 に使用しないでください。また3 番ピンと 8 番ピンは PROFIBUS 信号を転送します。これらは決して入れ替えてはいけません。
Synchronization
TwinCAT Run Modeでは、EL6731は常に、変数がリンクされている最優先タスクと同期します。
各EL6731に対して個別のEtherCATテレグラムが定義されます。対応するタスクのサイクルタイムはマッピングが作成されるとすぐにマスタの “EL6731 “タブのサイクルタイムに表示されます。タスク開始時のI/Oを更新するかどうかをタスクに対して設定することができます。
I/O at Task Start
設定 “I/O at Task Start” Checkbox が選択されている場合 (NCタスクのデフォルト設定)、EtherCATテレグラムはタスク開始前に転送されます。
I/O not at Task Start
設定 “I/O at Task Start” Checkbox が選択されていない場合 (PLCタスクのデフォルト設定)、EtherCATテレグラムはタスク完了後に転送されます。タスク開始時にI/O “と比較すると、EtherCATテレグラムはタスクの実行時間によって揺れますが、出力は1サイクル更新しくなります。
Sync/Freeze functionality
Syncは複数のスレーブの出力を同時に出力する場合に、Freezeは複数のスレーブの入力を同時に読み込む場合に使用する使い分けがあります。
- 出力は、タスク・サイクルの最初(タスク開始時のI/O)または最後(タスク開始時以外のI/O)に書き込まれる。
- PROFIBUS サイクルが開始されます。
- Sync/Freeze Telegramは PROFIBUS サイクルの開始時に送信されます。
- これにより、バスカプラは最後のタスクサイクルからの出力でKバスサイクルを開始し、最後のKバスサイクルからの入力を転送する。
- マスターは各スレーブに現在出力を送信し、転送された入力をピックアップする。
- 入力は次のタスク・サイクルの開始時に読み込まれる。
したがって、出力と入力は常に1サイクル古い
Download GSD File
今回記事で使用するProfibus SlaveはSiemens 社のCPU 315-2 DPなので、下記のLinkからCPU 315-2 DPのGSD FileをDownloadしてください。
https://support.industry.siemens.com/cs/document/113652/profibus-gsd-files-simatic?dti=0&lc=en-JP
Implementation
Siemens Side
Siemens CPU 315-2 DP側から構築を始めます。
Hardware Configuration
S7300 Stationをダブルクリックします。
中にあるHardware項目を開きます。
こちらはS7-300などのCPUのHardware Configurationを構築する画面になります。
Configure DP
現在のCPU 315-2 DPのDP PortはProfibus Masterとして設定されています。今回記事で使用する三菱IQ-R RJ71PB91VはProfibus Masterのみ対応できますので、CPU 315-2 DPはSlaveとして設定する必要があります。DPをダブルクリックしてください。
こちらはDP Portの設定画面です。
Operating Mode
Operation ModeのTabを開き、DP slaveを設定してください。
Done!
Node Address
いまDP PortはSlaveとして稼働していますが、Profibusのアドレスを設定する必要があります。General Tab>Propertiesを開きます。
Parameters TabにあるAddress項目からアプリケーションに合わせてProfibusのアドレスを設定してください。
Configuration
最後はConfiguration Tabを開いて、DP SlaveとMaster間で交換するデータMappingを定義しましょう。CPU 315-2 DPは固定なSlotなく、アプリケーションに合わせて入出力メモリ領域を自由設定できます。
Add Input Data
Newボタンをクリックし新しいデータ交換領域を定義します。
SlotのProperties設定画面が表示されます。
Address Typeはいま設定してるSlotは入力や出力を変更できます。
Addressは該当するSlotのアドレスOffsetを設定します。(I=Input、Q=Output)
Lengthは該当するSlotのメモリサイズです。
Unitは該当するSlotのデータ・タイプです。
下図では、Slotを入力として設定し、Addressは10から始め、合計4 Bytesの入力データになります。
Done!Slotが定義されました。
Add Output Data
次は出力データも先程と同様に設定しましょう。今度はAddress Typeを”Output”に設定します。
下図では、Slotを入力として設定し、Addressは10から始め、合計4 Bytesの出力データになります。
Done!
Save and Compile
次はHardware Configurationをコンパイルしましょう。
Download
最後はPLC>DownloadでHardware ConfigurationをCPUにDownloadしましょう。
今回記事で使用するCPU 315-2 DPを選択し、Okで進みます。
Viewで現在PCと接続している機器を検索します。
Done!CPU 315-2 DPが見つかりましたので、OKをクリックしHardware ConfigurationをCPUにDownloadしましょう。
しばらく待ちます…
Done!YesボタンでCPUをRun Modeに切り替えます。
Beckhoff Side
Install GSD File
次はTwinCAT3側です。下記のPathで先ほどDownloadしたGSD Fileを格納してください。
C:\TwinCAT\3.1\Config\Io\Profibus
Add EtherCAT Master
I/O>Device>右クリック>Add New Itemします。
EtherCAT>EtherCAT Masterを選び、OKで進みます。
今回EtherCAT Masterとして使用するEthernet Adapterを設定してください。
Done!
Scan EtherCAT Slave
TwinCAT3の自動Slave検出機能を使ってEtherCAT Slaveを検出します。
先ほど追加したEtherCAT Master>右クリック>Scanします。
Done!EL6731が見つかりましたので、Yesで進みます。
EL6731が追加されました。
EL6731 Configuration
次はProfibus Terminal EL6731の設定を行います。
Term setting
EL6731の設定画面を開き、EL6731 Tab>Searchをクリックします。
EL6731は正しいTerminalとLinkしてるかを確認してください。
下図ではTerm13だと表示されているのは、EL6731はTerminal 13にあるからです。
Station No
次はStation番号です。ProfibusはCC-LINKなどと同じくネットワーク内に独自の番号を設定する必要があります。
今回はS7-300 Stationと被らないようにStation番号を2に設定します。
Baudrate
通信速度もネットワーク内に統一してください。
Add Siemens Slave
Profibus Masterが設定完了したら、今度はSiemensのS7-CPUを追加します。
EL6731を右クリック>Add New Itemします。
SIEMENS>CPU 315-2 DPを選び、OKで進みます。
Done!
Station No
Station 番号は先程Siemens側で設定した番号と揃ってください。
今回の記事では1にします。
その1は実際先ほどStep7 Classicで設定した”1”です。
Slot
次はSlaveの各Slaveを設定します。
最初にあるSlave 1,2,3はSiemensの General IDなので、無視してください。
Add Slot4
Slot4を追加するため、Siemens CPUを選び>右クリック>Add New Itemします。
Module Listが表示されます。
Master_Q_Slave_I_4 B Unitを選び、OKで進みます。
Master_Q_Slave_I_4 B Unitを設定するには、Siemens側はSlot4では4 Byteの入力データあると設定しましたので。
Done!
Add Slot5
Slot5を追加するため、Siemens CPUを選び>右クリック>Add New Itemします。
Master_Q_Slave_Q_4 B Unitを設定するには、Siemens側はSlot5では4 Byteの出力データがあると設定しましたので。
Done!これで設定完了です。
Result
実際EL6731の設定結果は以下になります。
Add PLC
今度ははPLCを追加するため、PLC>右クリック>Add New Itemします。
StandardPLCを選び、Addで進みます。
Add GVL
EL6731にMappingする変数を定義するため、GVLを追加します。GVL>右クリック>Add>Global Variable Listをクリックします。
下図のように4Bytesの入力・出力データを定義します。
Build
Build>Build Solutionでプロジェクトをコンパイルします。
Mapping Output Data
EL6731に追加したSiemens CPU315 SlaveにあるOutputsを全部選び>右クリック>Change Mulit Linkします。
先ほど定義した出力Process Dataを選び>Okします。
Done!
Mapping Input Data
EL6731に追加したSiemens CPU315 SlaveにあるInputsを全部選び>右クリック>Change Mulit Linkします。
先ほど定義した入力Process Dataを選び>Okします。
Done!
Activate Configuration
Activate CofigurationをクリックしプロジェクトをRuntimeにDownloadします。
OKで進みます。
RuntimeをRun Modeに切り替えます。
Login
最後はRuntimeにLoginしましょう。
Result
EL6731のError変数を確認します。
現在値は0なので、エラーがありません。
今度はSlaveのSiemens S7-315にあるDpStateを確認します。
現在値は0なので、エラーがありません。
SiemensとBeckhoff両方とも入出力を確認できました。