From 8544dc89d744410c89f99605f079014311bd9775 Mon Sep 17 00:00:00 2001 From: emqx-ci-robot Date: Sun, 6 Aug 2023 04:36:02 +0000 Subject: [PATCH] sync blog --- README.md | 3 + .../bridging-opc-ua-data-to-mqtt-for-iiot.md | 238 ++++++++++++++++++ ...chmark-testing-emqx-mongodb-integration.md | 104 ++++++++ ...plug-bridging-it-and-ot-in-industry-4-0.md | 100 ++++++++ zh/202308/bridging-twincat-data-to-mqtt.md | 193 ++++++++++++++ 5 files changed, 638 insertions(+) create mode 100644 en/202308/bridging-opc-ua-data-to-mqtt-for-iiot.md create mode 100644 en/202308/mqtt-performance-benchmark-testing-emqx-mongodb-integration.md create mode 100644 ja/202308/mqtt-sparkplug-bridging-it-and-ot-in-industry-4-0.md create mode 100644 zh/202308/bridging-twincat-data-to-mqtt.md diff --git a/README.md b/README.md index f958b077..1dad9f40 100644 --- a/README.md +++ b/README.md @@ -313,6 +313,7 @@ The easiest way to start MQTT service. Connect your IoT devices to any cloud wit ## [EMQX Enterprise](https://www.emqx.com/en/blog/category/enterprise) The world's most scalable and reliable MQTT messaging platform to connect, move and process your data in business-critical scenarios for the IoT era. +- [MQTT Performance Benchmark Testing: EMQX-MongoDB Integration](https://github.com/emqx/blog/blob/main/en/202308/mqtt-performance-benchmark-testing-emqx-mongodb-integration.md) - [EMQX MQTT Broker Troubleshooting: Authentication Issues](https://github.com/emqx/blog/blob/main/en/202307/emqx-mqtt-broker-authentication-troubleshooting.md) - [File Transfer over MQTT: Transfer Large Payloads via One Protocol with Ease](https://github.com/emqx/blog/blob/main/en/202307/file-transfer-over-mqtt.md) - [MQTT Performance Benchmark Testing: EMQX-InfluxDB Integration](https://github.com/emqx/blog/blob/main/en/202307/mqtt-performance-benchmark-testing-emqx-influxdb-integration.md) @@ -354,6 +355,7 @@ Build a reliable, efficient and industry-specific Internet of Vehicles platform - [Data Stream Processing for Software-Defined Vehicle](https://github.com/emqx/blog/blob/main/en/202306/data-stream-processing-for-software-defined-vehicle.md) - [What Is V2X and The Future of Vehicle to Everything Connectivity](https://github.com/emqx/blog/blob/main/en/202306/what-is-v2x-and-the-future-of-vehicle-to-everything-connectivity.md) +- [Bridging Demanded Signals From CAN Bus to MQTT by eKuiper](https://github.com/emqx/blog/blob/main/en/202306/bridging-demanded-signals-from-can-bus-to-mqtt-by-ekuiper.md) - [CAN Bus: How It Works, Pros and Cons, and Fast Local Processing Tutorial](https://github.com/emqx/blog/blob/main/en/202305/can-bus-how-it-works-pros-and-cons.md) - [QUIC Protocol: the Features, Use Cases and Impact for IoT/IoV](https://github.com/emqx/blog/blob/main/en/202304/quic-protocol-the-features-use-cases-and-impact-for-iot-iov.md) - [What is a Connected Car? All You Need to Know](https://github.com/emqx/blog/blob/main/en/202304/connected-cars-and-automotive-connectivity-all-you-need-to-know.md) @@ -370,6 +372,7 @@ Build a reliable, efficient and industry-specific Internet of Vehicles platform ## [Industrial IoT | Unified Namespace | Sparkplug](https://www.emqx.com/en/blog/category/industrial-iot) +- [Bridging OPC UA Data to MQTT for IIoT: A Step-by-Step Tutorial](https://github.com/emqx/blog/blob/main/en/202308/bridging-opc-ua-data-to-mqtt-for-iiot.md) - [IIoT Explained: Examples, Technologies, Benefits and Challenges](https://github.com/emqx/blog/blob/main/en/202308/iiot-explained-examples-technologies-benefits-and-challenges.md) - [The Smart Manufacturing Revolution: Examples, Tech & Tips](https://github.com/emqx/blog/blob/main/en/202307/the-smart-manufacturing-revolution.md) - [Bridging TwinCAT Data to MQTT: Introduction and Hands-on Tutorial](https://github.com/emqx/blog/blob/main/en/202307/bridging-twincat-data-to-mqtt.md) diff --git a/en/202308/bridging-opc-ua-data-to-mqtt-for-iiot.md b/en/202308/bridging-opc-ua-data-to-mqtt-for-iiot.md new file mode 100644 index 00000000..aa989569 --- /dev/null +++ b/en/202308/bridging-opc-ua-data-to-mqtt-for-iiot.md @@ -0,0 +1,238 @@ +## What is OPC UA + +OPC UA (OPC Unified Architecture) is a platform-independent, service-oriented, open, and secure communication architecture. It is designed to enable interoperability of industrial automation devices, systems, and software applications from different vendors. The OPC UA information model defines the codes and formats for exchanging data using various transport protocols. + +OPC UA and its predecessor, Open Platform Communications (OPC), were developed by the same foundation but significantly different. The foundation continues to develop OPC UA in order to create an architecture that is more desirable than the original OPC communications and more in line with the needs of evolving industrial automation. + +The first version of the OPC UA specification was released in 2006, and as of today, the latest version of OPC UA is 1.05. In addition to the Client-Server (Subscriptions) model, OPC UA includes a Pub-Sub mechanism, which allows pushing JSON specifications (also using the standard-defined binary specification - UADP) over the UDP protocol, [MQTT protocol](https://www.emqx.com/en/blog/the-easiest-guide-to-getting-started-with-mqtt), or [AMQP protocol](https://www.emqx.com/en/blog/mqtt-vs-amqp-for-iot-communications). + +Through the fast, secure and reliable transport channel provided by the MQTT protocol, OPC UA can directly use the Internet for data transfer while retaining the key benefits of OPC UA's end-to-end security and standardized data modeling. + +![OPC UA](https://assets.emqx.com/images/f4582b4676a6867f6beefa40c055fae2.png) + +## Features of OPC UA + +- Functional equivalence - All OPC Classic specifications map to the UA, and the OPC UA includes the DA, A&E and HDA functionality found in OPC Classic: + +| **Functionality** | **Descriptions** | +| :---------------- | :----------------------------------------------------------- | +| Discovery | Find available OPC servers on your local PC and/or network | +| Address space | All data is represented hierarchically (e.g. files and folders), allowing OPC clients to discover, utilise simple and complex data structures | +| On-demand | Read and write data/information based on access rights | +| Subscription | Monitor data/information and report exceptions when values change beyond the client's settings | +| Event | Client-based settings notify important information | +| Method | Clients can execute programs based on methods defined on the server, etc. | + +- Security - Message encryption, authentication and auditing, one of the most important considerations for an organization when choosing a technology standard is security. OPC UA addresses security by providing a set of controls when passing through firewalls: + +| **Functionality** | **Descriptions** | +| :----------------------- | :----------------------------------------------------------- | +| Transport | A number of protocols are defined, providing options such as ultra-fast OPC binary transfers or the more general SOAP-HTTPS | +| Session encryption | Information is transmitted securely with 128-bit or 256-bit encryption levels | +| Message Signature | The signature must be identical when the message is received as when it is sent. | +| Sequencing Data Packages | Identified message replay attacks eliminated through sequencing | +| Authenticate | Each UA client and server is identified by an OpenSSL certificate, which provides control over how applications and systems connect to each other. | +| User control | Applications can require user authentication (login credentials, certificates, etc.) and can further restrict or enhance user access to permissions and address space "views". | +| Audits | Logging of user and/or system activity to provide an access audit trail | + +- Comprehensive Information Modelling: Used to define complex information, the OPC UA Information Modelling Framework converts data into information, allowing even the most complex multi-level structures to be modeled and extended through fully object-oriented functionality, with data types and structures that can be defined in configuration files. + +![OPC UA Information Modelling Framework](https://assets.emqx.com/images/1161f4a8f02d771efa813f234c8515a9.png) + +## Information Model for OPC UA + +The OPC UA information model is a network of nodes, or structured graph, consisting of nodes and references, which is called the OPC UA address space. The address space represents objects in a standard form - model elements in the address space are called nodes, and objects and their components are represented in the address space as a collection of nodes, which are described by attributes and connected by references. OPC UA modeling is all about creating nodes and references between nodes. + +### Object Model + +OPC UA uses objects as the basis for representing data and activities in the process system. Objects contain variables, events and methods that are interconnected by reference. + +![OPC UA Object Model](https://assets.emqx.com/images/313bb04eebc2beaacc6c359eba0e17d8.png) + +### Node Model + +![OPC UA Node Model](https://assets.emqx.com/images/185c6a8d55d470c5e558bd3afd76a0ca.png) + +- Attributes are used to describe nodes, and different node classes have different attributes (sets of attributes). The definition of a node class includes the definition of attributes, so attributes are not included in the address space. +- A Reference represents a relationship between nodes. A reference is defined as an instance of a node of the reference type that exists in the address space. +- Generic properties of the node model + +![Generic properties of the node model](https://assets.emqx.com/images/21e683edc5e34b7e2da17b662b99a421.png) + +### Reference Model + +The node containing the reference is the source node and the referenced node is called the target node. The referenced target node can be in the same address space as the source node, or in the address space of another OPC server, or even the target node can be non-existent. + +![OPC UA Reference Model](https://assets.emqx.com/images/3b484967bea36515325de244dda332bd.png) + +### Node Types + +The most important node categories in OPC UA are objects, variables and methods. + +- Object nodes: Object nodes are used to form address spaces and do not contain data. They use variables to expose values for objects. Object nodes can be used to group management objects, variables or methods (variables and methods always belong to an object). +- Variable node: Variable node represents a value. The data type of the value depends on the variable. The client can read, write and subscribe to the value. +- Method node: The method node represents a method in the server that is called by the client and returns the result. The input parameters and the output result are in the form of variables as part of the method node. The client specifies the input parameters and gets the output result after the call. + +## Why Bridge OPC UA to MQTT? + +MQTT (Message Queuing Telemetry Transport) is a messaging protocol designed for IoT devices and applications that uses a publish-and-subscribe model and has the advantages of being lightweight, efficient, reliable, and supporting real-time communication. MQTT is well suited for resource-constrained environments, especially scenarios requiring efficient power and bandwidth use. + +The industry has built an industrial IoT data specification called SparkplugB on top of MQTT 3.1.1, which provides basic data unified modeling capabilities while ensuring flexibility and efficiency. Thanks to the excellent design of the MQTT protocol, SparkPlugB provides good network state awareness and is able to provide strong interoperability for devices and systems. + +OPC UA and MQTT have a certain degree of functionality overlap, but their use of scenarios is very different: + +- OPC UA is a communication protocol used in industrial scenarios to enable different equipment and systems from various manufacturers to communicate seamlessly using a standardized language. +- MQTT is an IoT protocol designed for Internet-based data transmission of sensors, catering to low bandwidth and unreliable network conditions while efficiently handling continuous real-time data. Its read/publish mechanism offers remarkable flexibility in usage. + +In industrial scenarios, MQTT excels at messaging in distributed systems, while OPC UA focuses on providing interoperability. By combining the two, business data can be abstracted and aggregated using OPC UA, and MQTT can enable seamless exchange of this data in a distributed manner, leveraging its strong connectivity capabilities. + +## OPC UA over MQTT + +The Pub-Sub model proposed by the OPC Foundation in the latest specification of OPC UA allows data changes to be pushed to subscribers using the [MQTT Broker](https://www.emqx.com/en/blog/the-ultimate-guide-to-mqtt-broker-comparison). + +![OPC UA over MQTT](https://assets.emqx.com/images/e3772239f0f42b2f622996c721d7e57f.png) + +Pub-Sub security is a bit more complex than that in client/server, and the specification is not as detailed. In an MQTT network, security is based on SSL/TLS, and the broker can define application-level authentication in addition to enabling SSL/TLS for transport. In principle, these security models are either all or nothing for every subscriber and publisher that can join the network. The new OPC UA standardization is still a work in progress, and it is not yet clear how the rich OPC UA information model can best be mapped to MQTT. + +## Bridging OPC UA to MQTT via Neuron + +[Neuron](https://www.emqx.com/en/products/neuron) is a modern industrial IoT connectivity server that can connect to a wide range of industrial devices using standard or device-proprietary protocols, enabling the interconnection of industrial IoT platforms with massive devices. As a lightweight industrial protocol gateway software, Neuron is designed to operate on various IoT edge hardware devices with limited resources. Its primary goal is to address the challenge of accessing data from data-centric automation equipment in a unified manner, thus offering essential support for smart manufacturing. + +[EMQX](https://www.emqx.io/) is a distributed open-source MQTT broker. As the world's most scalable MQTT messaging server, EMQX provides efficient and reliable connectivity to a massive number of IoT devices, enabling high-performance, real-time movement and processing of messages and event streams, helping users rapidly build business-critical IoT platforms and applications. + +OPC UA data sources can be captured and aggregated by Neuron's southbound OPC UA driver, converted to the MQTT protocol, and transmitted to the EMQX MQTT Broker. The latter then distributes them to various distributed applications. + +In this blog, we will offer a bridging solution from OPC UA to MQTT with Neuron and EMQX. We will demonstrate using Neuron to collect data from the Prosys OPC UA Simulation Server, upload the collected data to the locally-built EMQX MQTT Broker (mqtt://192.168.10.174:1883), and finally view the changes in the data using the MQTTX subscription topic. + +| **Application** | **IP address** | **port** | +| :------------------------------ | :------------- | :------- | +| Prosys OPC UA Simulation Server | 192.168.10.174 | 53530 | +| Neuron | 192.168.10.174 | 7000 | +| EMQX | 192.168.10.174 | 1883 | +| MQTT X | | | + +### Installing the OPC UA Simulator + +The installation package can be downloaded from the [Prosys OPC website](https://www.prosysopc.com/products/opc-ua-simulation-server/). After installation, run Prosys OPC UA Simulation. Make sure that the Neuron is running on the same LAN as the simulator. + +Click **Objects->Objects::FolderType->Simulation::FolderType** to view the data and select Counter::BaseDataVariableType. + +![Select Counter::BaseDataVariableType](https://assets.emqx.com/images/5a4d4723a45d66d48327d45be58fd1e1.png) + +### EMQX Startup + +Execute the following commands to install and run the EMQX container. For more information on how to install the EMQX container, you can visit the [Installation Guide](https://www.emqx.io/docs/zh/v5.0/deploy/install.html). + +``` +docker pull emqx/emqx:5.1.0 +docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083 +``` + +### Neuron Setting + +Neuron offers a variety of installation methods, which you can view in detail in [Installation](https://neugates.io/docs/zh/latest/installation/installation.html). This example uses a containerized deployment so that you can start experiencing Neuron as soon as possible. Execute the following commands to install and run the Neuron container. + +``` +$ docker pull emqx/neuron:latest +$ docker run -d --name neuron -p 7000:7000 --privileged=true --restart=always emqx/neuron:latest +``` + +Open a web browser, and enter the address and port number of the gateway where you are running Neuron to get to the management console page. The default port number is 7000. Go to `http://localhost:7000/` (localhost can be replaced with your actual IP address) through your browser. + +#### Step 1: Login + +After the page opens, it goes to the login interface, where you can log in with the initial user name and password (initial user name: admin, initial password: 0000). + +#### Step 2: Add Southbound Device + +Select Southbound Devices in the **Configuration** menu to enter the **South Devices** screen and click **Add Device** to add a new device. + +- Name: fill in the device name, for example opcua-195-prosys; +- Plug-in: drop-down box to select the OPC UA plug-in. + +#### Step 3: Set the Southbound Device Parameters + +Automatically enter the device configuration interface after adding a southbound device, fill in the parameters and submit. + +- Endpoint URL: Fill in the connection address of OPC UA Simulation Server, such as: opc.tcp://192.168.10.174:53530/OPCUA/SimulationServer; +- Username: default no need to fill in; +- Password: Not required by default; +- Cert: No need to upload by default; +- Key: No need to upload by default. + +Ensure that the Prosys OPC UA Simulation Server has been switched to Expert Mode (**Option->Switch to Expert Mode**). Click **Certificates** to set NeuronClient@localhost in the list on the left to Trusted. + +![Click **Certificates**](https://assets.emqx.com/images/18303ffbc9c775f0cbcb30243db9a401.png) + +#### Step 4: Create a Group in the Device Card + +Click any blank space of the device node card to enter the group list management interface, and click Create to bring up the dialogue box for creating a group. Fill in the parameters and submit: + +- Group name: Fill in the group name, for example, group-1; +- Interval: default 1000. + +#### Step 5: Add Data Point Locations to the Group + +Enter the point list management interface, click **Create**, fill in the point parameters and submit: + +- Name: Fill in the name of the point, for example, Counter; +- Attribute: Drop down to select point properties, e.g. Read, Write; +- Type: Drop down to select the data type, for example, INT32; +- Address: Fill in the drive address, e.g., 3!1001. + - 3 represents the Namespace of the data point in the OPC UA simulator. + - 1001 represents the Node ID of the data tag; +- Description, Decimal, and Precision are not filled in. + +#### Step 6: View Collected Data in Data Monitoring + +Select **Monitoring→Data Monitoring** to enter the Data Monitor interface and view the values read from the created points. + +![Neuron Dashboard](https://assets.emqx.com/images/92c58c6e1017480fafc38d54ca254088.png) + +#### Step 7: Add a Northbound Plug-in Module to the Application + +Select **North Apps** in the Configuration menu and click **Add Application**. + +- Name: Fill in the application name, for example, MQTT; +- Plugin: drop-down box to select the MQTT plugin. + +#### Step 8: Set the North Application Parameters + +- Client ID: Note that this ID should be independent of each other. Duplicate IDs will cause the client to be kicked. For example, set to MQTT1999; +- QoS Level: Default is 0; +- Reporting data format: Default is Values-format; +- Write request subject: Defaults to /neuron/MQTT/write/req; +- Write response subject: Defaults to /neuron/MQTT/write/resp; +- Offline Cache: Off by default; +- Server Address: Fill in the address of the locally installed EMQX MQTT Broker at 192.168.10.174, which is your actual IP address; +- Server Port: Default 1883; +- User name, password: Not filled; +- SSL: Disabled by default. + +#### Step 9: Subscribe to the South Tag Group + +Go to the list of subscription groups and click **Add Subscription**. + +- South Device: Drop-down box to select a created southbound device. For example, opcua-195-prosys; +- Group: Drop-down box to select the group to subscribe to, e.g., group-1; +- Topic: The MQTT topic, which in this case defaults to /neuron/MQTT/group-1. Next, subscribe to this topic in MQTTX and receive messages. + +### View the Data Using MQTTX + +You can go to the [MQTTX official website](https://mqttx.app/) to download MQTTX and install it. After installation, start MQTTX and add connection, set Host to `mqtt:://192.168.10.174`, Port to `1883`, subscribe to the topic `/neuron/MQTT/group-1`, and then you can receive the data transferred from OPC UA. + +![MQTTX](https://assets.emqx.com/images/f72e055d59d5728b079df244ebdb6f0f.png) + +## Summary + +The OPC UA protocol enables communication and data exchange between devices, while MQTT provides an efficient, flexible and secure messaging mechanism. By leveraging the strengths of both protocols, this integration allows seamless transmission of device data to the cloud, facilitating remote monitoring and control with efficiency and security. The ability to harness real-time insights from equipment and processes empowers businesses to optimize operations, boost productivity, and ensure the highest levels of quality. Embracing this innovative approach not only enhances the overall efficiency of industrial systems but also paves the way for smarter, data-driven decision-making, driving industries towards a more connected and prosperous future. + + + +
+
+ Try Neuron for Free +
The Industrial IoT connectivity server
+
+ Get Started → +
diff --git a/en/202308/mqtt-performance-benchmark-testing-emqx-mongodb-integration.md b/en/202308/mqtt-performance-benchmark-testing-emqx-mongodb-integration.md new file mode 100644 index 00000000..14020d29 --- /dev/null +++ b/en/202308/mqtt-performance-benchmark-testing-emqx-mongodb-integration.md @@ -0,0 +1,104 @@ +>IoT scenarios often face challenges like a large number of devices, high data generation rates, and the huge accumulated data volumes. Therefore, how to access, store, and process these massive amounts of data has become a critical issue. +> +>[EMQX](https://www.emqx.com/en/products/emqx), as a highly scalable, powerful and feature-rich MQTT broker for the IoT, can handle billions of concurrent connections and millions of messages per second in a single cluster. Furthermore, its built-in [Data Integration](https://www.emqx.com/en/solutions/mqtt-data-integration) functionality provides an out-of-the-box solution, which enables seamless integrating IoT data with more than 40 cloud services and enterprise systems, including Kafka, SQL, NoSQL, and time-series databases. +> +>This blog series presents the benchmark test results of the integrations against a single node EMQX server. + +In this post, we provide the benchmarking result of MongoDB integration - a single node EMQX processes and inserts 80,000 QoS1 messages per second to MongoDB. + +## Test Scenario + +This benchmark testing simulates 80,000 MQTT clients connecting to EMQX, with a connection rate of 4,000 per second. After all connections are established, each client publishes one QoS 1 message with the payload of 100 bytes per second, and all messages, via the rule engine, are written into MongoDB. + +- Concurrent connections: 80,000 +- Topics: 80,000 +- CPS (new established connections per sec.): 4000 +- QoS: 1 +- Keep alive: 300s +- Payload: 100 bytes +- Message publish TPS: 80,000/second + +## Testbed + +The test environment is configured on Alibaba Cloud, and all virtual machines are within a VPC (virtual private cloud) subnet. + +### Machine Details + +| Service | Deployment | Version | OS | CPU | Memory | Cloud Host model | +| :------ | :---------- | :------ | :--------- | :--- | :----- | :--------------- | +| EMQX | single node | 5.1.0 | Centos 7.8 | 32C | 64G | c6.8xlarge | +| MongoDB | single | 5.0.18 | Centos 7.8 | 16C | 32G | c6.4xlarge | + +### Test Tool + +[XMeter](https://www.emqx.com/en/products/xmeter) is used in this benchmark test to simulate MQTT clients. XMeter is built on top of JMeter but with enhanced scalability and more capabilities. It provides comprehensive and real-time test reports during the test. Additionally, its built-in monitoring tools are used to track the resource usage of the EMQX and MongoDB machines. + +XMeter provides a private deployment version (on-premise) and a public cloud SaaS version. A private XMeter is deployed in the same VPC as the EMQX and MongoDB in this testing. + +![XMeter](https://assets.emqx.com/images/b805a9ab1fa3d6f1bbfc3bb3e181dda3.png) + +## Preparation + +For the detailed steps of configuring EMQX-MongoDB integration, please refer to [EMQX Doc](https://docs.emqx.com/en/enterprise/v5.0/data-integration/data-bridge-mongodb.html). The three figures below are MongoDB Bridge settings used in this benchmark testing. + +### MongoDB Bridge & Rule Config + +![Data Bridge](https://assets.emqx.com/images/d5559be561c5c335fb037ad0441f5711.png) + +![Payload template](https://assets.emqx.com/images/3a230a750fc0c3e4803e1e7f7c07b3f6.png) +![Data Bridge 2](https://assets.emqx.com/images/4754bf4dbaffd08381b43ddf0f9e3bcb.png) +![Rules](https://assets.emqx.com/images/c34a7329c8d03a5bd5f64bc71cb3ce8e.png) + +After the bridge and rule were created, the data flow in below can be seen from the Dashboard. + +![data flow](https://assets.emqx.com/images/57a8138401d6c0a946a3ffb346be30bb.png) + +### System Tuning + +Please refer to [EMQX Doc](https://docs.emqx.com/en/enterprise/v4.4/tutorial/tune.html) for the Linux Kernel tuning. + +## Benchmark Results + +### Observations + +- The usage of CPU and memory keeps stable +- The average of CPU user: 76% +- Memory used: Max 14GB, stabilized at around 11G. +- The average of response time of publish: 2.95ms +- After the test was completed, by comparing the data statistics from the EMQX Dashboard Data Bridge Statistics with the number of queries in the corresponding table of the database, it was observed that all messages were written to MongoDB in real-time and successfully. + +### Result Charts + +**Screenshots of EMQX Dashboard & Rule Engine during the test** + +![EMQX Dashboard](https://assets.emqx.com/images/32d68171e4b1c4c4f62a825607008a27.png) +![Rule Engine](https://assets.emqx.com/images/0df8e30845fccc14575ab26951887cae.png) + +The above two screenshots show that both the incoming message rate & processing rate by Data Bridge are 80,000+ per second, and all messages hit by the rule are written to the database in real time. + +**Screenshots after the test completed** + +![Screenshots 1](https://assets.emqx.com/images/5cd739e318ae527b496e48e28b7f097d.png) +![Screenshots 2](https://assets.emqx.com/images/ffaaa6f1f3a43e08b17495cf59dd8ad1.png) + +The above screenshots show that all messages EMQX received were forwarded to MongoDB successfully. + +**XMeter report chart** + +![XMeter report chart](https://assets.emqx.com/images/c41aa51b1abda57dd22884b4da6bb388.png) + +## Wrapping up + +MongoDB excels in offering flexibility, scalability, performance, and a robust feature set, making it a popular choice for various applications and use cases. + +This benchmark report demonstrates the powerful performance of integrating EMQX and MongoDB in a single-node deployment. We believe the out-of-the-box solution will bring significant value to IoT customers, delivering exceptional results. + + + +
+
+ Try EMQX Enterprise for Free +
Connect any device, at any scale, anywhere.
+
+ Get Started → +
diff --git a/ja/202308/mqtt-sparkplug-bridging-it-and-ot-in-industry-4-0.md b/ja/202308/mqtt-sparkplug-bridging-it-and-ot-in-industry-4-0.md new file mode 100644 index 00000000..fe77db59 --- /dev/null +++ b/ja/202308/mqtt-sparkplug-bridging-it-and-ot-in-industry-4-0.md @@ -0,0 +1,100 @@ +産業企業は常に、生産性、収益性、柔軟性、品質、そして敏捷性の向上を追求しており、そのためにインダストリー4.0の技術を活用します。工場のデジタル変革への投資を増やすことで、高度な自動化、製品品質の追跡記録の改善、生産規模の拡大、そして組織の持続可能な発展を目指しています。しかし、予算をさらに増やす前に、工場のITとOTインフラが大量の新システムと機器をサポートできるかどうかを検討することが重要です。これは、多くの企業が見落としている重要な考慮点です。 + +インダストリー4.0のコアはIIoTであり、工場が機械、センサー、ロボット、その他のデバイスをインターネットや相互接続することを可能にする。IIoTの実装における重要な課題の1つは、インダストリー4.0の要求を満たすことができる適切な通信規格を選択することです。MQTT Sparkplugは、IIoTのために特別に設計された通信プロトコルであり、このブログでは、MQTT Sparkplugを掘り下げて、それがインダストリー4.0に何をもたらすかを見ていきます。 + +## MQTT Sparkplugとは? + +MQTT Sparkplugは、IoTのメッセージング・プロトコルとして広く使われている[MQTT](https://www.emqx.com/ja/blog/the-easiest-guide-to-getting-started-with-mqtt)の上に構築されたメッセージング・プロトコルです。すでにMQTTプロトコルのすべての利点を備えている。MQTT SparkplugはIIoTのために特別に設計されており、産業用アプリケーションに適した追加機能を備えている。オープンソースのプロトコルであり、業界で広く採用されている。 + +MQTT Sparkplugは、[MQTTのパブリッシュ・サブスクライブ・モデル](https://www.emqx.com/en/blog/mqtt-5-introduction-to-publish-subscribe-model)に従っており、デバイスとホストが独立して動作し、生産プロセスの変更に迅速に対応するためのリアルタイムのデータ通信を行うことができる。また、バイナリ形式の標準化されたメッセージを定義しており、ホストシステムとデバイス間で一貫性のある効率的なデータ転送が可能です。 + +## MQTT Sparkplugの進化 + +Sparkplugプロトコルは当初、シーラスリンク・ソリューションズが2016年5月にバージョン1.0としてリリースした。その後、「ペイロードB」を導入した2016年12月のバージョン2.1、シーラス・リンクがEclipse Foundation向けにプロトコルのブランドを変更し、商標シンボルを追加した2019年10月のバージョン2.2などのアップデートが行われました。これらの進展は、産業オートメーションおよびIIoT領域におけるSparkplugプロトコルの継続的な改良と成長を意味します。 + +昨年、Sparkplugワーキンググループは、インダストリー4.0向けのプロトコルに大幅な進歩と正式化をもたらす新しいプロトコル標準v3.0を発表した。 + +> *Sparkplug 3.0の新機能をご覧ください:*[*Sparkplug 3.0:IIoT向けMQTT進化された標準*](https://www.emqx.com/ja/blog/sparkplug-3-0-advancements-and-formalization-in-mqtt-for-iiot) + +## インダストリー4.0向けMQTT Sparkplugの一般的な利点 + +MQTT Sparkplugは、インダストリー4.0のIIoTシステムにいくつかのメリットをもたらす: + +- スケーラビリティ:システムのパフォーマンスに影響を与えることなく、工場が必要に応じて新しいデバイスやセンサーを追加できる。 +- セキュリティ:[MQTT TLS](https://www.emqx.com/en/blog/fortifying-mqtt-communication-security-with-ssl-tls)暗号化と認証を使用することで、デバイス間の安全なデータ伝送方法を提供します。 +- 標準化:異なるメーカーのデバイスやホストシステム間の一貫性と相互運用性を保証します。 +- ネットワーク効率:小さなパケットサイズと効率的なバイナリメッセージフォーマットにより、システムの帯域幅使用量を削減することができます。 + +また、さまざまなクラウド、システム、デバイスを統合するための接続規格も提供している。 + +- クラウドプラットフォームとの統合:MQTT Sparkplugは、工場がクラウドにデータを保存し分析することを可能にし、高度な分析と機械学習機能を実現します。 +- レガシーシステムとの統合MQTT Sparkplugにより、レガシーシステムはエッジノードを通じて簡単に統合でき、工場は既存のインフラを活用できます。 + +## ITとOTの融合 + +大半の企業はまだ生産にインダストリー3.0テクノロジーを使用している。ほとんどのインダストリー3.0システムでは、ITシステムとOTシステムは分離しており、ITシステムはデータ処理と管理に、OTシステムは物理的なプロセスと機械の制御に焦点を当てている。オートメーション・ピラミッドの図では、ERPとMESはITシステムに属し、SCADA、PLC、SENSORSなどはOTシステムである。 + +![Industry 3.0 vs Industry 4.0](https://assets.emqx.com/images/16662833189c88c6b0bdfb26e8f819df.png) + +インダストリー4.0が要求するように、クラウドコンピューティング、ビッグデータ、ロボットといったより高度な技術が製造インフラに追加されるだろう。 + +新しいシステムやデバイスが増えれば増えるほど、オートメーション・インフラは複雑になっていく。最終的に、デバイスやシステム間の通信チャネルは、もつれたり、整理されていないものが多くなります。すべてのシステムがOPC-UAのような単一のプロトコルを使用して相互に通信しているにもかかわらず、複雑なクライアント・サーバー接続ネットワークとルーティング・メカニズムは、相互運用性とデータ交換の面で工場に課題をもたらします。 + +![Unified Namespace](https://assets.emqx.com/images/49f772bf4d8aae15c87bf02619ff9889.png) + +このような課題に対処するため、Sparkplugイニシアチブでは、異なる機器やシステム間で使用できる標準化された通信チャネルやプロトコルの開発に重点を置いている。異なるデバイスやサブシステム間の相互運用性を可能にする標準化されたデータモデルやオントロジーの開発。 + +SparkplugブローカーとデータオプスゲートウェイをITとOTインフラの中央データハブとして一緒に導入することで、すべてのホストシステムとデバイスはデータ交換のためにこの中央データハブに等しく接続されます。ERPやMES、クラウドプラットフォームのようなSparkplugホストシステムは、PLC、デバイス、マシン、ロボットからのデータメッセージを直接消費することができ、ITとOTの融合を実現します。 + +## 統一ネームスペース:IIoT管理を簡素化するSparkplugの機能 + +Sparkplugの主な特徴の1つは、[統一ネームスペース](https://www.emqx.com/ja/blog/unified-namespace-next-generation-data-fabric-for-iiot)を使用することです。名前空間とは、システム内のオブジェクトを識別し、整理するために使用される命名システムである。インダストリー4.0の文脈では、通常、互いに通信する必要のある複数のデバイス、センサー、システムが存在する。各デバイスやシステムは独自の命名システムや識別子を持っている可能性があり、それらを統合的に管理することは困難である。 + +統一ネームスペースは、集中管理アプローチを可能にします。統一されたネームスペースにより、管理者はネットワーク内のすべてのデバイスとシステムを1ヶ所から簡単に監視・管理することができます。これは、管理すべきデバイスやシステムが何百、何千と存在するような大規模な産業環境では特に役立ちます。 + +さらに、統一されたネームスペースは、システム制御や監視タスクの自動化を促進します。デバイスやシステムを識別し、相互作用するための標準化された方法を提供することで、Sparkplugはデバイスの設定、ソフトウェアの更新、システム診断などのタスクを自動化するために使用できます。これにより、管理者の作業負荷を軽減し、産業オペレーション全体の効率を向上させることができます。 + +統一された名前空間はまた、データを整理し構造化するための標準化された方法を提供し、文脈化され正規化されたデータ表現を可能にする。統一された名前空間により、どのITシステムもどのOTシステムからもデータを利用することができ、その逆もまた同様である。AI/ML、Historian、SCADAなどのコンシューマー・アプリケーションは、この標準化されたデータ構造データから恩恵を受けることができ、スピードとデータ整合性の面でデータ処理を改善することができる。 + +Sparkplugで統一されたネームスペースを使用することで、インダストリー4.0環境における産業用システムの管理と監視のプロセスが簡素化されます。一元管理を可能にし、自動化を促進し、トラブルシューティング能力を向上させることで、統一されたネームスペースは産業用オペレーションの全体的な効率性と有効性を向上させるのに役立ちます。 + +> *詳しくは、統合ネームスペースに関するブログシリーズをお読みください:*[*統一ネームスペース(Unified Namespace - UNS):IIoTデータ管理のための次世代データファブリック*](https://www.emqx.com/ja/blog/unified-namespace-next-generation-data-fabric-for-iiot) + +## MQTT Sparkplugソリューションの構築 + +MQTT Sparkplugソリューションを実装するには、MQTTサーバーとエッジノードの2つのコンポーネントが必要です。 + +MQTTサーバーは、IIoT環境におけるデバイスとアプリケーション間の通信を処理する中央ブローカーとして使用される。MQTTサーバーは、デバイスからのメッセージを受信し、適切なサブスクライバーに転送し、必要に応じて後で検索できるようにメッセージを保存する責任を負う。 + +エッジノードは、デバイスとMQTTブローカー間の仲介を行うデバイスまたはゲートウェイです。エッジノードは、MQTTブローカーへのデータのバッファリングや転送だけでなく、ローカルでのデータ処理やアグリゲーションも行うことができます。エッジノードは通常、多数のデバイスが大量のデータを生成し、ネットワーク帯域幅が限られているIIoT環境で使用されます。 + +MQTT Sparkplugのコンテキストでは、エッジノードはSparkplug仕様の実装を担当し、これにはデバイスの登録処理、Sparkplugペイロードフォーマットを使用したデータのエンコードとデコード、Sparkplugトピックネームスペースフォーマットを使用したデータの整理が含まれます。エッジノードは、MQTTプロトコルを使用してMQTTサーバーと通信し、データのローカル分析や処理を実行するために追加のソフトウェアを実行することもできます。 + +統一された名前空間を使用することで、デバイスやシステムは、個々の命名システムに関係なく、簡単にお互いを発見し、通信することができます。これにより、インダストリー4.0環境における複雑なシステムの統合と管理がはるかに容易になり、ネットワーク全体でデータが正確かつ一貫して共有されるようになります。 + +> *MQTT Sparkplugソリューションの例:*[*EMQXとNeuronを活用した産業用IoTに向けのMQTT Sparkplugソリューション*](https://www.emqx.com/ja/blog/mqtt-sparkplug-solution-for-industrial-iot-using-emqx-and-neuron) + +## MQTT SparkplugとOPC UAの比較OPC UA + +MQTT SparkplugとOPC UAは、どちらも産業用IoT分野で著名な通信プロトコルだ。 + +MQTT Sparkplugは、軽量のパブリッシュ/サブスクライブ・メッセージング・プロトコルであるMQTTプロトコルをベースにしています。対照的に、OPC UAは通信と情報モデリングの両方の側面を包含する、より包括的で複雑なプロトコルです。Sparkplugのスケーラブルで効率的な設計は、リソースに制約のあるデバイスや帯域幅の限られたネットワークに適しています。OPC UAはより多くのリソースを必要とするため、より高いデータスループットや複雑なインタラクションが要求されるシステムでよく利用されます。 + +これら2つのプロトコルのより包括的な比較は、以下を参照されたい:[IIoTプロトコルの比較:MQTT SparkplugとOPC-UAの比較](https://www.emqx.com/ja/blog/a-comparison-of-iiot-protocols-mqtt-sparkplug-vs-opc-ua) + +## まとめ + +結論として、MQTT SparkplugはIIoTの世界に多くの利点をもたらす強力で効率的なプロトコルである。MQTT Sparkplugは、効率的なデータ伝送と、デバイスの検出とデータモデリングのための組み込みメカニズムにより、大規模な産業用ネットワークの接続と管理に理想的な選択肢となります。MQTT Sparkplugを活用することで、企業はリアルタイムのデータ洞察力を引き出し、業務効率を改善し、産業プロセスのイノベーションを推進することができます。 + +IIoTが成長と進化を続ける中、MQTT Sparkplugが産業用コネクティビティの未来を形作る上で重要な役割を果たすことは間違いなく、よりスマートで、より接続性が高く、より効率的な産業用システムを実現します。 + + + + + +
+
+ ソリューション専門家に問い合わせ +
+ お問い合わせ → +
diff --git a/zh/202308/bridging-twincat-data-to-mqtt.md b/zh/202308/bridging-twincat-data-to-mqtt.md new file mode 100644 index 00000000..05c32db9 --- /dev/null +++ b/zh/202308/bridging-twincat-data-to-mqtt.md @@ -0,0 +1,193 @@ +## TwinCAT 及 ADS 协议 + +### 什么是 TwinCAT + +TwinCAT(The Windows Control and Automation Technology)是由德国倍福自动化有限公司(Beckhoff Automation)开发的用于自动化技术的软件平台。它被用于编程和控制各种类型的工业自动化设备,例如可编程逻辑控制器(PLC)、运动控制系统、人机界面(HMI)等。 + +TwinCAT 具有模块化和可扩展的特点,使其可用于广泛的应用和行业。它支持多种编程语言,包括结构化文本(ST)、梯形图(LD)、功能块图(FBD)、顺序功能图(SFC)和 C/C ++。 + +### ADS 协议 + +ADS (Automation Device Specification) 协议是 TwinCAT 系统中的传输层。它是为了在自动化系统中不同组件之间进行数据交换而开发的,例如 PLC、HMI 和其他设备。ADS 协议提供了高效的数据传输方式,支持实时、异步和通知式数据传输模式,使得 TwinCAT 系统中的各个组件可以彼此通信并协同工作。 + +![ADS 通信结构](https://assets.emqx.com/images/ea38c6c7f07e962d84709f28d104784c.png) + +
ADS 通信结构
+ +
+ +ADS 协议在运行于 TCP/IP 或 UDP/IP 协议之上,其 TCP 端口号为 48898 。 + +ADS 使用客户端-服务器模型进行通信,其中一个设备(客户端)向另一个设备(服务器)发送请求并接收响应。请求和响应可以包括数据、命令或状态信息。这种通信模型可用于在 TwinCAT 系统中的不同组件之间进行通信,包括 PLC、HMI 和其他设备。 + +![ADS 报文结构](https://assets.emqx.com/images/39e9bf8f3f9b1e22976e4a56f7d8dcfd.png) + +
ADS 报文结构
+ +
+ +ADS 协议提供了一组[命令](https://infosys.beckhoff.com/english.php?content=../content/1033/tcadscommon/12440300683.html&id=),用于服务器和客户端之间的通信,其中最重要的是 [ADS Read](https://infosys.beckhoff.com/english.php?content=../content/1033/tcadscommon/12440300683.html&id=) 和[ADS Write](https://infosys.beckhoff.com/content/1033/tcadscommon/12440291467.html) 命令。 + +## 为什么将 TwinCAT 桥接到 MQTT + +随着工业 4.0 的到来,制造业中的智能化、自动化和数据化需求越来越高。在这种背景下,MQTT 协议相较 ADS 协议有许多优势。 + +[MQTT](https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqtt) 是一种为物联网设备和应用程序设计的消息协议,采用发布与订阅模型,具有轻量、高效、可靠的,支持实时通讯等优点。 MQTT 非常适合资源受限的环境,特别是需要高效使用电力和带宽的场景。目前已经广泛应用于物联网、移动互联网、智能硬件、车联网、智慧城市、远程医疗、电力、石油与能源等领域。 + +此外,MQTT 是一种开放标准协议,有许多开源实现,相比于 ADS 协议可以运行在更多不同的平台上。 + +## TwinCAT 桥接到 MQTT 的架构 + +![The Architecture of TwinCAT to MQTT Bridging](https://assets.emqx.com/images/f7b81bd0ef7ed7c4661b4a388f681b37.png) + +### 使用 Neuron 转换 TwinCAT 到 MQTT + +[Neuron](https://neugates.io/zh) 是一款强大的工业协议网关软件,可以为实时工业数据采集提供必要的物联网连接能力。Neuron 十分轻量,可以运行在各种资源受限的物联网边缘硬件设备中,并通过标准协议或其自有的专用协议与各种各样的工业设备进行通信,将其连接到工业物联网平台。 + +从发布之初,Neuron 就支持 MQTT 作为其通信协议之一。Neuron [MQTT 插件](https://neugates.io/docs/en/latest/configuration/north-apps/mqtt/overview.html)允许用户快速构建使用 MQTT 协议的物联网应用程序,实现设备与云之间的通信。 + +Neuron 2.2.0 版本中发布了 [Beckhoff ADS 插件](https://neugates.io/docs/en/latest/configuration/south-devices/ads/ads.html)。Neuron Beckhoff ADS 插件实现了基于 TCP 的 ADS 协议。该插件支持与 [Beckhoff TwinCAT](https://www.beckhoff.com/en-us/products/automation/twincat/#stage-special-item-s320986-2_t0) PLC 进行通信,进一步丰富了 Neuron 的连接能力,增强了用户体验,满足更多用户需求。 + +通过 Beckhoff ADS 插件,用户可以轻松地从 TwinCAT PLC 采集数据。与 MQTT 插件一起使用,用户可以将采集的数据推送到工业物联网平台,如 [EMQX](https://www.emqx.com/zh/products/emqx),或将消息发布回 TwinCAT PLC,触发设备操作,例如打开或关闭灯光、电机和其他设备。 + +### 使用 EMQX 处理 MQTT 消息 + +[EMQX](https://www.emqx.io/zh) 是一款大规模可弹性伸缩的云原生分布式物联网 [MQTT 消息服务器](https://www.emqx.com/zh/blog/the-ultimate-guide-to-mqtt-broker-comparison)。作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,帮助用户快速构建关键业务的物联网平台与应用。 + +EMQX 在桥接架构中的作为 MQTT broker,而 Neuron 则收集来自 TwinCAT PLC 的数据并通过 MQTT 消息将数据传输到代理。在从 Neuron 接收 MQTT 消息后,EMQX 将转发数据或执行进一步的处理。 + +EMQX 具有丰富而强大的功能集,例如基于 SQL 的规则引擎,可实时提取、过滤、丰富和转换物联网数据,以及数据集成功能,可将 EMQX 连接到外部数据系统,如数据库。 + +## 通过 Neuron 将 TwinCAT 桥接到 MQTT + +接下来我们将介绍如何使用 Neuron 采集 Twincat PLC 的数据,将采集到的数据上传到 MQTT Broker(EMQX),并使用 [MQTTX](https://mqttx.app/zh) 查看。 + +本教程使用了在同一个局域网下的 2 台机器,机器 1 为 Linux 系统,安装了 EMQX、MQTTX 和 Neuron 软件;机器 2 为 Windows 系统,安装了倍福 TwinCAT 3 软件。 + +| | 机器1 | 机器2 | +| :------- | :------------------ | :---------------- | +| 操作系统 | Linux | Windows | +| IP 地址 | 192.168.1.152 | 192.168.1.107 | +| amsnetid | 192.168.1.152.1.1 | 192.168.1.107.1.1 | +| 安装软件 | EMQX, MQTTX, Neuron | TwinCAT | +| 网络 | 连通 | 连通 | + +### EMQX 快速使用 + +EMQX 提供多种安装方式,用户可在[安装指南](https://www.emqx.io/docs/zh/v5.0/deploy/install.html)在中查看详细的安装方式。本实例采用容器化部署的方式,以便于最快开始体验 EMQX。 + +运行以下命令获取 Docker 镜像: + +``` +docker pull emqx/emqx:5.1.0 +``` + +运行以下命令启动 Docker 容器 + +``` +docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.0 +``` + +通过浏览器访问 `http://localhost:1883` (localhost 可替换为您的实际 IP 地址)以访问 EMQX Dashboard 管理控制台,进行设备连接与相关指标监控管理。本教程保持 docker 启动即可,如有兴趣可以参考[文档](https://www.emqx.io/docs/zh/v5.0/)在控制台体验更多功能。 + +初始用户名: `admin` ,初始密码:`public` + +### TwinCAT 配置 + +您可以前往 [Beckhoff TwinCAT 网站](https://www.beckhoff.com/en-us/products/automation/twincat)下载和安装 TwinCAT 。 + +让 Neuron 和倍福 PLC 建立通讯,需要添加路由、查找 AMS Net ID、AMS port、以及变量的 index group 和 index offset 。打开 **TwinCAT Static Routes** 对话框,输入下图红框内容,其中 **AmsNetId**,为 Neuron 所在机器与倍福 PLC 相连的网卡的 IP 地址后加上 ".1.1" 。 + +![Add Route Dialog](https://assets.emqx.com/images/76fa1bf6823b3922ec91a5e8ad908e71.png) + +在本文中我们使用以下 TwinCAT PLC 程序,其定义了足够的变量进行演示。 + +![TwinCAT PLC program](https://assets.emqx.com/images/5dbe48a09eeab228f8e15a3e73e45b92.png) + +在项目路径打开 TPY 文件。TPY 文件中包含了 PLC 程序中所有变量的 index group 和 index offset 信息,后续配置 Neuron 点位地址时会用到。 + +![Open the TPY file in the TwinCAT project directory](https://assets.emqx.com/images/9084517cef1d7754bc4edd3e3b9c55af.png) + +### Neuron 快速开始 + +Neuron 提供多种安装方式,查阅[安装指南](https://neugates.io/docs/zh/latest/configuration/quick-start/installation.html)以获取详细的 Neuron 安装说明。 + +打开 Web 浏览器,输入运行 Neuron 的网关地址和端口号,即可进入到管理控制台页面,默认端口号为 7000。通过浏览器访问 `http://localhost:7000` (localhost 可替换为您的实际 IP 地址)。 + +#### 第一步. 登录 + +页面打开后,进入到登录界面,用户可使用初始用户名与密码登录(初始用户名:admin,初始密码:0000)。 + +#### 第二步. 添加南向节点 + +在 Neuron 仪表板中,点击**配置 -> 南向设备管理 -> 添加设备**来添加一个 *ads* 节点。 + +![添加南向节点](https://assets.emqx.com/images/699b6ee8b41ab66033cff0b71a839898.png) + +#### 第三步. 配置 *ads* 节点 + +配置新创建的 *ads* 节点, 如下图所示。 + +![配置 *ads* 节点](https://assets.emqx.com/images/2abaaaae0927d226cb3af3c7c9fd8c00.png) + +#### 第四步. 创建组 + +点击 *ads* 节点进入**组列表**页面,点击**创建**,弹出**创建组**对话框。填写参数并提交: + +- 组名称:grp +- 间隔: 1000 + +#### 第五步. 添加数据点位 + +对于 TwinCAT PLC 程序中的变量,我们将在 Neuron ADS 节点上添加一个相应的点位。 变量的点位地址由变量的 index group 和 index offset 组成。 + +![Tag 列表](https://assets.emqx.com/images/7615b3e6ef6e400829fbca7f5373c465.png) + +#### 第六步. 数据监控 + +点击**监控** -> **数据监控**,查看已创建点位读取到的数值,如下图所示。 + +![数据监控](https://assets.emqx.com/images/120650cdc39c4c6e246ff15be2bc91f1.png) + +#### 第七步. 添加北向应用 + +在 Neuron 仪表板中,点击**配置 -> 北向应用 -> 添加应用**来添加一个 *mqtt* 节点。 + +![添加北向应用](https://assets.emqx.com/images/d5e7ce56416a74e3eee5fffe54379f43.png) + +#### 第八步. 配置 *mqtt* 节点 + +配置 *mqtt* 节点连接到之前启动的 EMQX 服务器。 + +![配置 *mqtt* 节点](https://assets.emqx.com/images/27cb36011bc92cccd94674ea501cf4de.png) + +#### 第九步. 添加订阅 + +点击刚创建的 *mqtt* 应用节点进入**组列表**页面,点击**添加订阅** 。订阅成功后,Neuron 会将数据发布到 MQTT 主题 `/neuron/mqtt/ads/grp` 中。 + +![添加订阅](https://assets.emqx.com/images/0f4172aeb1a616c4d8d6e91548c427fa.png) + +### 使用 MQTTX 查看数据 + +现在,您可以使用 [MQTT 客户端](https://www.emqx.com/zh/blog/mqtt-client-tools)连接到 EMQX 并查看报告的数据。本文我们使用 [MQTTX](https://mqttx.app/zh),这是一个功能强大的跨平台 MQTT 客户端工具,可以从其[官方网站](https://mqttx.app/zh)下载。 + +启动 MQTTX,并添加一个到之前设置的 EMQX 服务器的新连接,然后订阅主题 `/neuron/mqtt/ads/grp` 。成功订阅后,您将看到 MQTTX 持续收到由 Neuron 采集的数据,如下图所示。 + +![MQTTX](https://assets.emqx.com/images/232567212ae2a3a9e34a4ef0dfffa98a.png) + +## 结语 + +在本文中,我们介绍了如何使用 Neuron 将 TwinCAT 数据桥接到 MQTT 的整体过程。 + +作为一款工业自动化平台,TwinCAT 在包括汽车、航空航天、食品和饮料等各种行业中得到了广泛应用。具有强大工业物联网连接能力的 Neuron,可从 TwinCAT PLC 收集数据,并将获取的数据无缝传输到云端,以便在必要时进行方便的远程控制和监控。 + +除此之外,Neuron 还支持 [Modbus](https://www.emqx.com/zh/blog/modbus-protocol-the-grandfather-of-iot-communication)、OPC UA、SIEMENS 等其他工业。有关更多桥接教程,请阅读我们的文章:[工业物联网数据桥接教程:Modbus 桥接到 MQTT](https://www.emqx.com/zh/blog/bridging-modbus-data-to-mqtt-for-iiot#the-architecture-of-modbus-to-mqtt-bridging)。 + + + +
+
+ 联系 EMQ 工业领域解决方案专家 +
+ 联系我们 → +