当前位置:网站首页>RMS to EAP is simply implemented through mqtt

RMS to EAP is simply implemented through mqtt

2022-07-05 10:07:00 panda_ two hundred and twenty-five thousand and four hundred

Tips : When the article is finished , Directories can be generated automatically , How to generate it, please refer to the help document on the right


Preface

EAP yes MES Bridge with equipment ,EAP adopt SECS International standard protocol for data transmission with the machine . Our company RMS through SECS International standard protocol for data transmission with the machine , Just more should be in MES Business logic on the Internet , Put it in RMS On , It's not used so much in architecture EAP The division of labor is clear ,RMS Taking away the business logic and transforming it can also become EAP, I'll simply try


Tips : The following is the main body of this article , The following cases can be used for reference

One 、MQTT

1、 Using message queuing
MES And other systems send information to RMS,RMS The received message is passing SECS\GEM Communicate with semiconductor devices
advantage :
1、 Decouple the system , Improve response time , System functions converge inward , Opening to the outside world ;
2、 Split the asynchronous function of the system , Reduce functional coupling , Provide development efficiency ;
There are advantages and disadvantages , Specific information can be found online , That's not true
MQTT Protocol is a message queuing transmission protocol , Adopt subscription 、 Publishing mechanism , Subscribers receive only the data they have subscribed to , Non subscription data will not be received , It ensures the necessary data exchange , It also avoids the storage and processing caused by invalid data . Therefore, it has been widely used in the industrial Internet of things .
I'm using rabbitmq, because rabbitmq Support MQTT agreement , also MQTT The protocol also supports for Web Message push , It's easy to implement , Support both WEB, There are support clients , Or a general agreement , Any system can use this protocol to communicate with RMS Communications

Two 、 Use steps

1.rabbitmq Support MQTT agreement

The code is as follows ( Example ):

 The first one is  rabbitmq_mqtt  Provides interaction with back-end services , Corresponding port 1883.

rabbitmq-plugins enable rabbitmq_mqtt
 The second kind  rabbitmq_web_mqtt  Provide interaction with the front end , Corresponding port 15675.

rabbitmq-plugins enable rabbitmq_web_mqtt 

2.RMS Listen for messages and send messages

stay RMS Add the code as follows ( Example ):
 Insert picture description here
 Insert picture description here
RMS Listen to messages sent by other systems , Through SECS\GEM Communicate with semiconductor devices , The machine returns the result and then passes MQTT Send the results to other systems

3.Web Listen for messages and send messages

The code is as follows ( Example ):

    <script type="text/javascript">
        // mqtt agreement rabbitmq service 
        var brokerIp = "10.20.36.64";
        // mqtt Protocol port number 
        var port = 15675;
        //  Accept the subject of the push message 
        var topic = "test";

        // mqtt Connect 
        client = new Paho.MQTT.Client(brokerIp, port, "/ws", "clientId_" + parseInt(Math.random() * 100, 10));

        var options = {
    
            timeout: 3, // Timeout time 
            keepAliveInterval: 30, // Heartbeat time 
            userName: "admin",  // user name 
            password: "admin",  // password 
            onSuccess: function () {
    
                console.log((" Successful connection ~"));
                client.subscribe("test1", {
     qos: 1 });
            },
            onFailure: function (message) {
    
                alert(message.errorMessage);
                console.log((" The connection fails ~" + message.errorMessage));
            }
        };
        //  in consideration of https The situation of 
        if (location.protocol == "https:") {
    
            options.useSSL = true;
        }
        client.connect(options);
        console.log((" Already connected to " + brokerIp + ":" + port));

        //  Disconnect event 
        client.onConnectionLost = function (responseObject) {
    
            console.log(" Lose connection  - " + responseObject.errorMessage);
        };

        //  Receive message event 
        client.onMessageArrived = function (message) {
    
            alert("222:"+message.payloadString);
            console.log(" Accept the theme : " + message.destinationName + " The news of : " + message.payloadString);
            $("#arrivedDiv").append("<br/>" + message.payloadString);
            var count = $("#count").text();
            count = Number(count) + 1;
            $("#count").text(count);
        };

        //  Push to a specific topic 
        function sendMessage() {
    
            var a = $("#message").val();
            if (client.isConnected()) {
    
                var message = new Paho.MQTT.Message(a);
                message.destinationName = topic;
                client.send(message);
                alert(message);
            }
            else {
    
                alert("isConnected:" + client.isConnected());
            }
        }
    </script>

4.RMS and WEB After the client starts

test WEB End
 Will be in rabbitmq in Qu
test RMS End
 Insert picture description here
rabbitmq In the queue, there will be mqtt- The first line , When you close the client , The queue also disappeared .
 Insert picture description here


summary

Record every bit of it

原网站

版权声明
本文为[panda_ two hundred and twenty-five thousand and four hundred]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050938090004.html