---
title: プログラミングコース06 PLC通信制御
tags: 
author: [株式会社ペリテック](https://www.docswell.com/user/Peritec)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4JMYYYR5JW.jpg?width=480
description: プログラミングコース06の解説つきスライドです。 是非テキストや動画（Youtube）と併用ください。
published: April 30, 26
canonical: https://www.docswell.com/s/Peritec/5PRMVQ-programming_course06
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4JMYYYR5JW.jpg)

プログラミングコース
P06 PLC通信制御
TCPネットワーク上に接続された
PLCとの通信を学ぶ
（TCP/IP &amp; RS-485 Interface）
株式会社ペリテック


# Page. 2

![Page Image](https://bcdn.docswell.com/page/PJR999RZ79.jpg)

本コースで習得すべき内容
① LabVIEW TCP関数を使用してTCPネットワーク上に接続されたデバイスとの通信
プログラムが作成できるようになること。
② PLCと通信するプログラムを作成することによってPLC側のパラメータ設定を学ぶ
こと。
③ PLCに接続されている装置（本コースでは、ヒータとポンプ）を制御する方法を学ぶ
こと。
④ NIが推奨しているキューメッセージハンドラ（生産者／消費者デザインパターン）を
使用してLabVIEWプログラムが作成できるようになること。
⑤ 波形チャートを使用して計測データのグラフ表示を行うLabVIEWプログラムが作
成できるようになること。
※ NI＝米国ナショナルインスツルメンツ社
※ PLC＝Programmable Logic Controllerの略でシーケンサとも呼ばれる。


# Page. 3

![Page Image](https://bcdn.docswell.com/page/PEXQQQR1JX.jpg)

本コースでプログラミングを学ぶシステム構成
温度
調節計
PLC


# Page. 4

![Page Image](https://bcdn.docswell.com/page/3EK999RMED.jpg)

本コースで作成するプログラムの機能
① LabVIEW TCP関数を使用してPLC内データメモリのRead/Writeを行うプログラムを作成する。
② キューメッセージハンドラ（生産者／消費者デザインパターン）を使用する。
③ PLCに接続されているスイッチBOXの状態がモニタできること。
④ 画面にポンプON/OFFスイッチを配置してポンプのON/OFFが制御できること。
⑤ 画面にヒータON/OFFスイッチを配置してヒータのON/OFFが制御できること。
⑥ PLCとの通信周期が設定できること。
⑦ 温度調節計から温度データを取得して数値表示、グラフ表示すること。


# Page. 5

![Page Image](https://bcdn.docswell.com/page/L73WWW8275.jpg)

本コースで配布するプログラムの画面設計


# Page. 6

![Page Image](https://bcdn.docswell.com/page/87DKKKM6JG.jpg)

Step①使用するTCP関数
下記４つの関数を使用してPLCと通信を行います。
①TCP接続を開く
②TCP読み取り
③TCP書き込み
④TCP接続を閉じる


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJPKKKQZE8.jpg)

Step②PLC通信ドライバの説明
MELSEC QnA 3E Driver.vi


# Page. 8

![Page Image](https://bcdn.docswell.com/page/2EVVVV5MEQ.jpg)

Step②PLC通信ドライバの説明 （つづき）
MELSEC QnA 3E Driver.vi


# Page. 9

![Page Image](https://bcdn.docswell.com/page/57GLLL6XEL.jpg)

Step②PLC通信ドライバの説明 （つづき）
このドライバを使用して通信するには、PLC側の設定が必要となります。
設定内容については、別資料【PLC側の設定】を参照してください。


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4EQYYY45JP.jpg)

Step③スイッチBOXとPLCデータメモリのI/O表
QX40 ： 入力ユニット
QY10 ： 出力ユニット


# Page. 11

![Page Image](https://bcdn.docswell.com/page/KJ4WWWQV71.jpg)

Step④テストプログラムでPLCとの通信を確認する。
MELSEC QnA 3E 教育用.VI
制御BOXにLANケーブルを接続してスイッチBOXの状態をモニタする。
（注）WRITEは実行しないでください。制御BOXのリレーが破損する場合があります。


# Page. 12

![Page Image](https://bcdn.docswell.com/page/LE1YYYP47G.jpg)

Step⑤RS-485 MODBUS通信ドライバの説明
・RS-485 モード
・ボーレート
・データビット
・パリティ
・ストップビット
・フロー制御
：Wire2-Auto
：19200
：8
：None
：1
：なし
PZ900 MODBUS Driver.VI
RS-485 トランシーバ制御のサンプルVIを参考に作成しています。


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GEWGGG2ZJ2.jpg)

Step⑤RS-485 MODBUS通信ドライバの説明 （つづき）
このドライバを使用して通信するには、調節計側の設定が必要となります。
設定方法については取扱説明書を参照してください。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/47ZLLLDLJ3.jpg)

Step⑥テストプログラムで温度調節計との通信を確認する。
PZ900 PV値 test.vi


# Page. 15

![Page Image](https://bcdn.docswell.com/page/YJ6WWW1MJV.jpg)

Step⑦生産者／消費者デザインパターンでメインVIを作成する。


# Page. 16

![Page Image](https://bcdn.docswell.com/page/GJ5MMM4QJ4.jpg)

Step⑧キューで送信するメッセージを列挙定数で作成する。
配付するプログラムは、以下のように処理を分割し
て作成しました。
①initialize ：初期化処理①
②wait ：idle loop
③monitor ：計測データ保存処理
④pomp control：ポンプ制御処理
⑤heater control：ヒータ制御処理
⑥exit : プログラム終了処理


# Page. 17

![Page Image](https://bcdn.docswell.com/page/9E2999VW7R.jpg)

Step⑨生産者ループのイベント処理を作成する。
配付するプログラムは、以下のように
イベント処理を作成しました。
複雑な処理は実行せず、ファイル操作
及び計測処理はキューで消費者ループ
へ処理の実行を通知します。
①Graph Clear：値変更
②通信周期：値変更
③ポンプ制御：値変更
④ヒータ制御：値変更
⑤Exitボタン：値変更


# Page. 18

![Page Image](https://bcdn.docswell.com/page/D7Y44439EM.jpg)

Step⑩消費者ループのinitializeを作成する。
スタックシーケンス0：
プログラム終了時、ファイルに保存した
画面設定データを読み込んで再現す
る処理を作成しています。
スタックシーケンス1：
画面の初期化とPLC通信ドライバの
Openを実行しています。


# Page. 19

![Page Image](https://bcdn.docswell.com/page/VENYYYVDJ8.jpg)

Step⑪消費者ループのwaitを作成する。
通信周期で設定されている時間（msec）待機します。
Monitor処理をキューに入れて次の計測を起動します。


# Page. 20

![Page Image](https://bcdn.docswell.com/page/Y79PPP68E3.jpg)

Step⑫消費者ループのmonitorを作成する。
画面上の温度計測スイッチがONのとき温度調節計から温度データをReadします。
PLCからデータメモリをReadしてスイッチBOXの状態を更新します。
wait処理をキューに入れて起動します。


# Page. 21

![Page Image](https://bcdn.docswell.com/page/G78DDDZZ7D.jpg)

Step⑬消費者ループのpomp controlを作成する。
画面上のポンプスイッチの状態に応じて該当するPLCのデータメモリをON/OFF
します。（スイッチBOXの状態が自動で開始OFFの時のみ実行します。）


# Page. 22

![Page Image](https://bcdn.docswell.com/page/L7LMMMD1JR.jpg)

Step⑭消費者ループのheater controlを作成する。
画面上のヒータスイッチの状態に応じて該当するPLCのデータメモリをON/OFF
します。（スイッチBOXの状態が自動で開始OFFの時のみ実行します。）


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4EMYYYP5EW.jpg)

Step⑮消費者ループのexitを作成する。
PLC通信ドライバのCloseを実行して消費者ループを終了させています。


# Page. 24

![Page Image](https://bcdn.docswell.com/page/PER9991ZJ9.jpg)

まとめとポイント
① PLC通信
① TCP関数を使用して内部メモリのRead/Writeを行うドライバを作成する。
② PLC側の設定（IPアドレス、ポート番号、プロトコル選択）が必要。
③ PC側もローカルエリア接続にIPアドレスを設定する。
② RS-485通信
① RS-485トランシーバ制御のサンプルVIを利用する。
② MODBUSメッセージフレームの表現には、ASCIIとRTU（バイナリ）が存在する。
③ RTU（バイナリ）の場合には、終端文字列（デリミタ）がないので受信データ数をあらかじ
め算出しておく必要がある。
③ メインVIの作り方
① キューメッセージハンドラ（生産者／消費者デザインパターン）を使用する。
② キューで送信するメッセージは列挙定数をタイプ定義して作成する。


# Page. 25

![Page Image](https://bcdn.docswell.com/page/P7XQQQY1EX.jpg)

付録．１ RS-485とMODBUSプロトコル


# Page. 26

![Page Image](https://bcdn.docswell.com/page/37K9993M7D.jpg)

付録．２ RS-485 ２線式伝送の配線図
Slave
Device
NI USB-485
NI USB-485 凸Pinの説明
2線式伝送（半二重）では、マスタ側のTransmit Data (TXD+)およびReceive Data (RXD+)は、スレーブ側のTXD+およびRXD+へ合
わせて配線します。同様に、マスタ側のTXD-およびRXD-も、スレーブ側のTXD-およびRXD-へ合わせて配線します。


