当前位置:网站首页>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
List of articles
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 ):

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 
test RMS End 
rabbitmq In the queue, there will be mqtt- The first line , When you close the client , The queue also disappeared .
summary
Record every bit of it
边栏推荐
- RMS TO EAP通过MQTT简单实现
- Comment obtenir le temps STW du GC (collecteur d'ordures)?
- 观测云与 TDengine 达成深度合作,优化企业上云体验
- 90%的人都不懂的泛型,泛型的缺陷和应用场景
- The essence of persuasion is to remove obstacles
- Apache DolphinScheduler 系统架构设计
- 天龙八部TLBB系列 - 单体技能群伤
- Common fault analysis and Countermeasures of using MySQL in go language
- Meitu lost 300 million yuan in currency speculation for half a year. Huawei was exposed to expand its enrollment in Russia. Alphago's peers have made another breakthrough in chess. Today, more big new
- Six simple cases of QT
猜你喜欢

Charm of code language

ArcGIS Pro creating features

剪掉ImageNet 20%数据量,模型性能不下降!Meta斯坦福等提出新方法,用知识蒸馏给数据集瘦身...

为什么不建议你用 MongoDB 这类产品替代时序数据库?

Analysis on the wallet system architecture of Baidu trading platform

Evolution of Baidu intelligent applet patrol scheduling scheme

Unity粒子特效系列-毒液喷射预制体做好了,unitypackage包直接用 - 上

Community group buying has triggered heated discussion. How does this model work?

From "chemist" to developer, from Oracle to tdengine, two important choices in my life

Meitu lost 300 million yuan in currency speculation for half a year. Huawei was exposed to expand its enrollment in Russia. Alphago's peers have made another breakthrough in chess. Today, more big new
随机推荐
About getfragmentmanager () and getchildfragmentmanager ()
天龙八部TLBB系列 - 关于包裹掉落的物品
What should we pay attention to when developing B2C websites?
Cross process communication Aidl
Small program startup performance optimization practice
Generics, generic defects and application scenarios that 90% of people don't understand
搞数据库是不是越老越吃香?
How to get the STW (pause) time of GC (garbage collector)?
What about wechat mall? 5 tips to clear your mind
天龙八部TLBB系列 - 关于技能冷却和攻击范围数量的问题
How to use sqlcipher tool to decrypt encrypted database under Windows system
MySQL character type learning notes
RMS TO EAP通过MQTT简单实现
View Slide
Oracle combines multiple rows of data into one row of data
解决idea调试过程中liquibase – Waiting for changelog lock….导致数据库死锁问题
TDengine ×英特尔边缘洞见软件包 加速传统行业的数字化转型
Cent7 Oracle database installation error
Kotlin Compose 与原生 嵌套使用
Wechat applet - simple diet recommendation (4)