JoVE Logo

サインイン

このコンテンツを視聴するには、JoVE 購読が必要です。 サインイン又は無料トライアルを申し込む。

この記事について

  • 要約
  • 要約
  • 概要
  • プロトコル
  • 結果
  • ディスカッション
  • 開示事項
  • 謝辞
  • 資料
  • 参考文献
  • 転載および許可

要約

本研究は、メッセージキューテレメトリトランスポート(MQTT)と呼ばれるメッセージプロトコルに基づくフィルム押出システムと監視装置との間のデータ通信のための柔軟な方法を提案する。

要約

本研究は,TCP/IP上で動作するメッセージキュー遠隔測定トランスポート(MQTT)と呼ばれるパブリッシャ-サブスクライバベースのプロトコルを採用することにより,高分子加工機の柔軟なデータ通信構造を構築することを目的とする.従来の機器を使用する場合でも、インターネット通信を通じて、処理データをどこでも様々な機器で計測・記録することができます。メッセージベースのプロトコルは、既存のサーバー/クライアントプロトコルの欠点を克服する柔軟な通信を可能にします。複数のデバイスが、ソース・デバイスによってパブリッシュされた処理データをサブスクライブできます。提案手法は,複数のパブリッシャーとサブスクライバー間のデータ通信を容易にする.この作業では、機器と追加のセンサーからのデータをメッセージブローカーに公開するシステムを実装しました。サブスクライバーは、ブローカーによって中継されたプロセス・データをモニターおよび保管できます。このシステムは、有効性を実証するためにフィルム押出ライン用に展開および実行されています。

概要

第4次産業革命の波の中で、各種処理データの取得・監視が重要な課題となっています1.特に、プロセスデータを用いた製造プロセスの改善と効率的な運用計画の確立は、すべての製造施設2,3の重要な目標となります。ダウンタイムは、アラームを工場から送信できる場合、または予測メンテナンスを時間内に実行できる場合4 に大幅に短縮できます。最近、ポリマープロセスにおけるデータ分析のために多くの努力がなされている5,6。しかしながら、既存のシステム7からこのようなデータを取得することが困難であるため、これらのタスクを実行することは容易ではない。制御と計測の階層構造により、データの集録と通信が困難になります。

まず第一に、異なる製造日を持つ異なる機械からデータを取得することは不可能です。異なるマシン間の通信を実現するには、独自の形式の異なるフィールドバス間の相互運用性が必要であるため、困難です。このようにして、通信方法とデータ形式はプライベートに保たれます。これにより、データセキュリティを簡単に維持できますが、ユーザーはサービスや将来の開発についてマシンビルダーに依存するようになります。近年の高分子加工機に搭載されたヒューマンマシンインタフェース(HMI)などの制御コンピュータは、ほとんどがWindowsベースですが、独自の開発環境で作成されたソフトウェアが搭載されています。センサまたはアクチュエータと通信するために異なる企業のプログラマブルロジックコントローラ(PLC)を使用することが可能であるが、多くの場合、上部監視制御およびデータ収集(SCADA)システムは、制御コンピュータ8に依存する。この慣行により、多数のプロトコル、フィールドバス、および制御システムが市場で競合しています。この複雑さは時間の経過とともに少しずつ緩和されましたが、多くの種類のフィールドバスとプロトコルがまだ活発に使用されています。

一方、制御装置とSCADA間の通信は、Open Platform Communications United Architecture(OPCUA)9によって標準化されています。さらに、SCADAと製造実行システム(MES)との間の通信も、主にOPCUAを介して行われています。このようなタイトな階層構造では、プロセスの監視と分析のためにデータを自由に抽出することは容易ではありません。通常、データはSCADAまたはMES10から抽出する必要があります。前述のように、これらのシステムはベンダー固有であり、データ形式が開かれることはめったにありません。その結果、データ抽出には、元の情報技術/運用技術(IT/OT)ソリューションベンダーからの実質的なサポートが必要です。これにより、監視と分析のためのデータ取得が妨げられる可能性があります。

フィルム押出ラインにおいて、制御PCはSCADAシステム11によって監視される。SCADAシステムは、簡単に変更できないコンピュータプログラムによって操作されます。コンピュータプログラムは編集可能かもしれませんが、編集は非常に高価で時間がかかります。処理データを簡単に監視および分析するには、任意の場所からデータにアクセスできる必要があります。サイトから離れたところで処理データを監視するために、コンピュータプログラムは、処理データをインターネット12にストリーミングすることができるべきである。また、オープンフリー方式は、データ取得13のためのコストを低減する。このアプローチにより、商用ITソリューションに投資する余裕のない小規模工場でもデータ分析を実行できます14

この研究では、パブリッシャー-加入者モデルに基づくメッセージプロトコルが採用されている。メッセージ キュー テレメトリ トランスポート (MQTT) は、複数のデータ プロバイダーとコンシューマー間のメッセージングを可能にするオープンで標準的なプロトコルです15。ここでは、既存の製造設備について、MQTTを用いてデータを取得・送信・監視するシステムを提案します。システムは、性能を検証するためにフィルム押出ラインでテストされます。元のコントローラからのデータは、Modbusプロトコル を介して エッジデバイスに送信されます。その後、データがブローカーにパブリッシュされます。その間、2つのラズベリーピスは、測定された温度と照度を同じブローカーに公開します。その後、インターネット上の任意のデバイスがデータをサブスクライブし、その後、 図 1 に示すようにデータを監視および記録できます。この作業のプロトコルは、手順全体を実行する方法を示しています。

プロトコル

1. ブローカーのインストール

メモ: インターネット 経由で 処理データを監視および記録するには、データを中継するコンピュータシステムを準備する必要があります。 図 2 に示すように、システムはパブリッシャーとサブスクライバーの両方からアクセス可能である必要があります。したがって、通信の前に認識されているパブリックIPアドレスが必要です。Eclipse Mosquitto と呼ばれるオープンな MQTT ブローカーがシステム13 にインストールされます。

  1. パブリックIPアドレスを指定してコンピュータをインターネットに接続します。オペレーティングシステムのIP設定でアドレスを指定します。
  2. Eclipse Mosquitto などのブローカー・ソフトウェアをコンピューターにインストールします。ブラウザを使用してインストールファイルをダウンロードし、実行します。
  3. MQTT Lens などのテスト・プログラムを使用してブローカーをテストします。ブラウザーを使用して MQTT レンズをダウンロードし、インストールします。次に、パブリッシュされたメッセージがサブスクライブされていることを確認します。

2. 主な出版社の準備

メモ: このコンピュータは、TCP 経由で MQTT 経由で マシンデータをブローカーに公開します。レガシーデータは、送信するために解釈して再パッケージ化する必要があります。これは通常RS485かイーサネットによって行うことができる。ハードウェア・レベルでの接続は、バス・タイプに応じて検証する必要があります。押出成形機は、イーサネットポートを介してModbus 経由で データを送信します。

  1. コンピューターをコンピューター サイトに物理的に配置し、メインの発行元としてセットアップします。
    注:義務ではありませんが、この作品では産業用コンピュータが選択されました。
  2. コンピュータに Python3 をインストールします。ブラウザを使用してインストーラファイルをダウンロードし、実行します。
  3. PyModbus16 をインストールします。ブラウザを使用してインストーラファイルをダウンロードし、実行します。
  4. HMIがマシンを制御している押出コントローラを調べ、押出コントローラをメインの発行元に接続します。
  5. ModbusPoll や QModMaster などの Modbus ツールを使用して、マシンから Modbus プロトコルのデータと対応するアドレスを完全に識別します。送信されたマシンデータがModbusツールの対応するセルに表示されていることを確認します。
  6. パブリッシャー PC に、押し出しコントローラーからデータを取得する Python コードを記述します。
    メモ: コード例を次に示します。
    から pyModbusTCP.client import ModbusClient
    client = ModbusClient(host="192.168.1.***", port=***, unit_id=***)
    クライアント.open()
    ExtrusionData = str(client.read_holding_registers(1000, 58))
  7. PCIe、USB、RS232、RS485 を介して 他のデバイスからの追加のデータストリームをマージします。
    注: これは簡単です。追加のデータ文字列が取得されたら、既存のデータストリームにデータを追加するだけです。これは、次のコードで行います。
    押出データ += 追加データ
  8. paho.mqtt.client をートするには、paho-mqtt をインストールした後、pip install paho-mqtt17 を使用します
  9. ブローカーに接続してデータをパブリッシュするコードを実装します。
    メモ: 次のコード例を参照してください。
    url="117.xx.xxx.xx";ポート = 1883;ユーザー名 = "****";パスワード = "xxxxx";トピック = "押出機"
    mqttc = mqtt.クライアント()
    mqttc.username_pw_set(ユーザー名、パスワード)
    mqttc.connect(host=url, port=port)
    mqttc.loop_start()
    ExtrusionData = str(client.read_holding_registers(1000, 58))
    Pub1= mqttc.publish(topic, ExtrusionData))
    Pub1.wait_for_publish()

3. パブリッシャーの追加準備

メモ: このコンピュータは、TCP 経由で MQTT 経由で ブローカーにマシンデータを公開します。場合によっては、メインパブリッシャーでは実行できない追加の測定が必要になることがあります。Raspberry PiやArduinoなどのモノのインターネット(IoT)デバイスがその役割を果たすことができます。本研究では、温度データや照度データにラズベリーパイを採用した。この手順は、プロトコル・セクション 2 に似ています。

  1. センサーの位置の近くにラズベリーパイを置きます。
    メモ:配線距離が限られているため、ラズベリーパイを測定場所から非常に遠くに配置することはできません。ただし、押出機の近傍は非常に高温であるため、装置は測定場所から少なくとも1m離して配置する必要があります。
  2. コマンドラインで次のコマンドを実行して、ラズベリーパイにPython3をインストールします。
    sudo apt update
    sudo apt install Python3 idle3
  3. センサー データを取得するコードを実装します。センサデータは、I2CまたはGPIOを介して送信することができる。
    メモ: GPIO による追加の温度データについては 次のコード例を参照してください。
    max6675からMAX6675をート
    cs_pin1 = 24;clock_pin1 = 25;data_pin1 = 18
    cs_pin2 = 9;clock_pin2 = 11;data_pin2 = 19
    単位 = "C"
    熱電対1 = MAX6675(cs_pin1、clock_pin1、data_pin1、ユニット)
    熱電対2 = MAX6675(cs_pin2、clock_pin2、data_pin2、ユニット)
    T1 = 熱電対1.get()
    T2 = 熱電対2.get()
  4. Import paho.mqtt.client.
  5. セクション 2 のコードを再利用して、ブローカーに接続してデータをパブリッシュします。

4. 購読者の設定

注: インターネット上のどのデバイスも、ブローカー を介して 処理データを受け取ることができます。データは Python コードによっても処理および視覚化されます。開発が困難な場合は、Google Play の MQTT Client や App Store の MQT Tool などの利用可能なアプリケーションを使用できます。ユーザー インターフェイスの実装は非常に長いため、ここでは詳細を説明できません。また、App Store の MQT Tool などの既存のアプリケーションがデータを受信できることにも注意してください。

  1. インターネットへのサブスクリプションのためにデバイスをエンゲージします。物理的なケーブル接続を確認し、コマンド行でブローカー IP への ping を実行します (例えば、ping 117.xx.xxx.xx)。
  2. デバイスとOSに応じて適切なPython環境をインストールします。たとえば、Google Play の Python3 の代わりに Pydroid3 をアンドロイドデバイスにインストールします。
  3. paho.mqtt.client と paho.mqtt.subscribe の両方をートして、ブローカーに接続してブローカーからデータを受信します。
    メモ: 次のコード例を参照してください。
    paho.mqtt.client を mqtt としてートする
    paho.mqtt.subscribe を subscribe としてートする
    url="117.xx.xxx.xx";ポート = 1883;ユーザー名 = "****";パスワード = "xxxxx";トピック = "押出機"
    mqttc.username_pw_set(ユーザー名、パスワード)
    mqttc.connect(host=url, port=port)
    mqttc.subscribe(topic, 0)
    mqttc.loop_start()
    Sub1 = subscribe.simple(topic, hostname=url)
    ExtruderData = Sub1.payload.decode("utf-8")
  4. 必要に応じてPyQT5を使用してユーザーインターフェイスを構築します。
    注:この部分は非常に長く、通信ではなく受信データのグラフィカル表現に焦点を当てています。対応するコードは、補足データとして提供されます。
  5. ビルドされたコードを実行して、GUIに受信データを表示します。

5. データロギング

メモ: 処理データは、監視中にデータベースに書き込むことができます。この研究では、ラボ規模のデータベースが選ばれました。データは Access ファイルに接続され、ユーザーのコンピューターから簡単に書き込んだり取得したりできます。さらに、クエリによってテーブルを即座に作成し、Microsoft Excel などのスプレッドシート内のデータを分析できます。

  1. データを記録するサブスクライバー デバイスを選択します。
  2. 図 318 に示すように、Python コードのコマンドラインで "pip install pyodbc" を実行して pyodbc をートします。
  3. 処理データを記録するための Python コードによってデータベースにクエリを送信します。このメソッドについては、 図 3 の Python コードを参照してください。
  4. 記録されたデータを取得するためのクエリをデータベースに送信します。
    注: データ取得のコード例を以下に示します。
    ート pyodbc
    x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
    conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=C:\Users\data_analysis\db1.accdb;'
    )
    cnxn = pyodbc.connect(conn_str)
    crsr = cnxn.cursor()
    crsr.tables(tableType='TABLE') のtable_infoの場合:
    print(table_info.table_name)
    sql = """\
    Process_Conditionから*を選択
    """
    crsr = cnxn.execute(sql)
    crsrの行の場合:
    取得されたデータ = pd.read_sql(sql, cnxn)
    crsr.close()
    cnxn.close()

6. 展開

メモ: すべてのデバイスをインターネットに接続できる場合、セットアップは簡単です。ただし、コンピューター側のデータをセキュリティで保護するために、発行元はイントラネットにのみ存在できます。この場合、ブローカーはインターネットへのゲートウェイになることができます。そのためには、ブローカーに2つのイーサネットアダプタを装備する必要があり、そのうちの1つはパブリックIPアドレスを持っている必要があります。すべての項目が開発されたら、 図 4 に示すように、コードを各デバイスに展開する必要があります。有線または無線の接続モードは重要ではありませんが、各デバイスがブローカーにアクセスできるように保護する必要があります。これは、ブローカーがセキュリティ上の目的でイントラネットとインターネットの境界にあるゲートウェイとして動作できることを意味します。もちろん、すべての機器がインターネットに公開されていても、通信の観点からは問題ありません。

  1. エクストルージョン コントローラー、メイン パブリッシャー、および追加のパブリッシャーをイーサネット 経由で イントラネット ポートに接続します。
  2. ブローカーの 1 つのイーサネット・ポートをイントラネットに接続し、もう 1 つのイーサネット・ポートをインターネットに接続します。
  3. サブスクライバーをインターネットに接続するには、すべてのサブスクライバーに対して手順 4.1 を繰り返します。

7. 実行

注:システム全体をテストするために、押出ラインを開始し、すべてのPythonコードとMosquittoを実行しました。

  1. 押出プロセスを開始します。機械のHMIで、温度を設定し、HMI画面のボタンをタッチしてヒーターをオンにします。必要な温度に達したら、スクリュー回転を開始してポリマー溶融物を押し出します。
  2. すべてのコンピュータの電源を入れ、"net start mosquitto" コマンドでブローカー デバイス上のブローカー ソフトウェアを起動し、Python コードを実行して、必要に応じて処理データを監視および記録します。
    メモ: 手順 7.1 と手順 7.2 の順序は逆にできます。Python コードは、コマンドラインで "python3 xxxxx.py" と入力し、その後に Enter キーを押すだけで実行できます。このコマンドをスタートアッププログラムに追加して、デバイスが再起動するたびにコマンドを入力しないようにします。

結果

HMIに示され、ラズベリーピスによって測定されたデータは、 図5に示すように加入者に監視および記録されたことが判明した。ビデオで示されているように、処理データはデータベースに記録されます。

figure-results-221
図 1: MQTT プロトコル?...

ディスカッション

提示されたプロトコルに従うことによって、MESのような高価なITソリューションなしで処理データを監視および記録することができる。IoT技術により、従来の機械からのデータの取得と配信が容易になります。メッセージベースのプロトコルであるMQTTは、ポリマー処理ラインのデータ通信のプラットフォームとしてうまく機能することが示されています。さらに、追加のデータを柔軟に測定?...

開示事項

著者らは利益相反がないと宣言しています。

謝辞

本研究は、ソウルテック(ソウル科学技術大学)が資金提供する研究プログラムの支援を受けた。

資料

NameCompanyCatalog NumberComments
Edge DeviceAdavantechUNO 420Intel Atom E3815 Fanless
Film Extrusion MachineEM KoreaNot AvailableFor production of 450 mm film
PydroidIIECNot AvailableAndroid Devices
Python3Python Software FoundataionNot AvailableWindows, Linux
Raspberry Pi 4CanaKitNot AvailableStandard Kit

参考文献

  1. Shafiq, S. I., Szczerbicki, E., Sanin, C. Proposition of the methodology for Data Acquisition, Analysis and Visualization in support of Industry 4.0. Procedia Computer Science. 159, 1976-1985 (2019).
  2. Dilda, V., et al. Manufacturing: Analytics unleashes productivity and profitability. McKinsey & Company. , (2017).
  3. Ismail, A., Truong, H. L., Kastner, W. Manufacturing process data analysis pipelines: A requirements analysis and survey. Journal of Big Data. 6, 1 (2019).
  4. Nwanya, S. C., Udofia, J. I., Ajayi, O. O. Optimization of machine downtime in the plastic manufacturing. Cogent Engineering. 4 (1), 1335444 (2017).
  5. Zhou, T., Song, Z., Sundmacher, K. Big data creates new opportunities for materials research: A review on methods and applications of machine learning for materials design. Engineering. 5 (6), 1017-1026 (2019).
  6. Rousopoulou, V., Nizamis, A., Thanasis, V., Ioannidis, D., Tzovaras, D. Predictive maintenance for injection molding machines enabled by cognitive analytics for Industry 4.0. Frontiers in Artificial Intelligence. 3, 578152 (2020).
  7. Mamo, F. T., Sikora, A., Rathfelder, C. Legacy to Industry 4.0: A Profibus Sniffer. Journal of Physics: Conference Series. 870, 012002 (2017).
  8. Figueroa-Lorenzo, S., Añorga, J., Arrizabalaga, S. A role-based access control model in Modbus SCADA systems. A centralized model approach. Sensors. 19 (20), 4455 (2019).
  9. Schleipen, M., Gilani, S. -. S., Bischoff, T., Pfrommer, J. OPC UA & Industrie 4.0 - Enabling technology with high diversity and variability. Procedia CIRP. 57, 315-320 (2016).
  10. Nițulescu, I. -. V., Korodi, A. Supervisory control and data Acquisition approach in node-RED: Application and discussions. IoT. 1, 76-91 (2020).
  11. Perez-Lopez, E. SCADA systems in the industrial automation. Tecnología en Marcha. 28 (4), 3-14 (2015).
  12. Andersen, D. L., Ashbrook, C. S. A., Karlborg, N. B. Significance of big data analytics and the internet of things (IoT) aspects in industrial development, governance and sustainability. International Journal of Intelligent Networks. 1, 107-111 (2020).
  13. Kashyap, M., Sharma, V., Gupta, N. Taking MQTT and NodeMcu to IOT: Communication in Internet of Things. Procedia Computer Science. 132, 1611-1618 (2018).
  14. . Mythbusting the MES. Systema Available from: https://www.systema.com/blog/mythbusting-the-mes (2021)
  15. Yeh, C. -. S., Chen, S. -. L., Li, I. -. C. Implementation of MQTT protocol based network architecture for smart factory. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture. 235 (13), 2132-2142 (2021).
  16. Parian, C., Guldimann, T., Bhatia, S. Fooling the master: Exploiting weaknesses in the Modbus protocol. Procedia Computer Science. 171, 2453-2458 (2020).
  17. Mishra, B., Kertesz, A. The use of MQTT in M2M and IoT systems: A survey. IEEE Access. 8, 201071-201086 (2020).
  18. . pyodbc 4.0.34 Available from: https://pypi.org/project/pyodbc/ (2021)
  19. Ayer, V., Miguez, S., Toby, B. Why scientists should learn to program in Python. Powder Diffraction. 29 (2), 48-64 (2014).
  20. Boyes, H., Hallaq, B., Cunningham, J., Watson, T. The industrial internet of things (IIoT): An analysis framework. Computers in Industry. 101, 1-12 (2018).

転載および許可

このJoVE論文のテキスト又は図を再利用するための許可を申請します

許可を申請

さらに記事を探す

IoTMQTT

This article has been published

Video Coming Soon

JoVE Logo

個人情報保護方針

利用規約

一般データ保護規則

研究

教育

JoVEについて

Copyright © 2023 MyJoVE Corporation. All rights reserved