首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django/Python -串行线并发

Django/Python -串行线并发
EN

Stack Overflow用户
提问于 2018-04-25 04:57:16
回答 1查看 362关注 0票数 0

我目前正在开发一个带有嵌入式Linux和and服务器的网关。该网关的目标是通过RS485/Modbus线路从电气设备中检索数据,并在服务器上显示这些数据。

我使用的是Nginx和Django,web前端是由“静态”文件提供的。Javascript脚本文件反复进行AJAX调用,将CGI请求发送到Nginx。多亏了Django,这些CGI请求得到了JSON响应的响应。响应主要是在适当的Modbus设备上读取的数据。

确切的路径如下:随机定时CGI调用-> urls.py -> ModbusCGI.py (导入其他脚本ModbusComm.py)-> ModbusComm.py创建一个Modbus客户端,并立即尝试使用它进行读取。

接下来,我想实现一个Datalogger,定期在数据库中存储数据。我编写了一个脚本,也导入了ModbusComm.py脚本,但它不起作用:有时会同时发送多个Modbus帧(数据记录器和cgi脚本同时调用ModbusComm.py“文件”中的同一函数),这会导致错误。

我敢肯定,如果服务器上有很多用户(同时发送CGI请求),也会出现这个问题。还是不想?(已经为CGI请求管理队列系统了吗?我有点迷路了)

因此,我的目标是创建一个队列系统,它可以处理来自多个python脚本的调用,让它们在轮不到=>时等待,在轮到他们时使用正确的参数调用函数(实际上是使用modbus行),并将响应发送回python脚本,这样它就可以生成JSON响应。

我真的不知道如何做到这一点,我相信有更好的方法来做到这一点。

如果我说得不够清楚,请不要犹豫,让我知道:)

EN

回答 1

Stack Overflow用户

发布于 2018-05-01 01:46:09

当我不得不允许多个进程通过串行端口读取一些Modbus (而不仅仅是Modbus)数据时,我也遇到了同样的问题。我最终得到了一个独立的进程(“串口服务器”),它专门使用一个串口。所有其他进程通过一些感兴趣的进程通信机制(我们使用Unix套接字)通过该独立进程使用该端口。

这样,当应用程序想要读取Modbus寄存器时,它连接到“串行端口服务器”,发送其请求并接收响应。所有实际的串口通信都是由“串口服务器”以顺序的方式完成的,以确保一致性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50010615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档