问题标签 [modbus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - modbus android 应用程序 eclipse
我是安卓新手。我正在尝试在eclipse中运行modbusdroid的java代码程序我没有更改任何代码,只下载了最新版本的seroUtils.jar并添加到项目中,因为它丢失了。附上错误日志,当我在 Eclipse源中运行它时请帮助我 - https://github.com/bigcat/ModbusDroid
java - 如何使用 modbus4j 设置从 IP Modbus TCP?
我正在使用modbus4j
.
我会从 PC java 应用程序中读取控制器%MW
。M258
在modbus4j
项目中,我找到了这个示例:
但是我不知道如何将IP分配给从站。
在这个示例中,我只能看到一个slaveID
(int),但看不到从 IP。
你知道我怎么写从IP吗?
c# - NModbus 写文件记录
您是否有机会知道是否可以使用 nmodbus 执行写入文件记录功能(0x15)?我在 nmodbus 文档中找不到任何提及。我可以看到 FtdAdapter 有一个 Write 函数。是不是很相似?为此目的使用 nmodbus 的替代方法是什么?
html - 使用 Modbus TCP/IP 的 HTML5 离线 webapp 通信
即使我认为这是不可能的,我也会问你这个问题:是否可以创建一个 webapp(离线/在线)以在没有外部服务器的情况下使用 Modbus TCP/IP 与机器通信?
重点是:我们销售使用 Modbus TCP/IP 发送和接收信息的机器,我们希望使用纯 HTML5 离线缓存清单功能创建一个独立的 web 应用程序,该应用程序可以在不经过外部服务器的情况下与它们通信(除了第一次启动接收配置并将它们保存到localStorage)。
我不认为这些可以做到,但如果我错了,我会很高兴;-)
我使用 Node.js 发现了 TooTallNate,并且我已经使用了 phpmodbus,但是这些需要在设备(智能手机或桌面浏览器)和机器之间有一个服务器。
所以我的问题是:有可能吗?如果是这样,如果存在,我可以使用哪个 Javascript 库,或者我在哪里可以找到所需的信息?
提前感谢您的回答。此致
java - 发送 0xFF 并计算带符号字节的 CRC - WriteSingleCoil & ModBUS & Java & Android -
编辑和解决(下)
我正在使用 Java for Android 尝试将字节 255(WriteSingleCoil 函数中的 0xFF)发送到 ModBUS 服务器设备。
设备没有运行,我不知道是因为无法解释有符号字节 -1 还是因为我错误地计算了 CRC。我不知道如何计算负字节的 CRC。
总结:我不知道如何发送函数 05 Write Single Coil with 0xFF value for switch on the coil for from Java to ModBUS server。
任何人都可以帮助我吗?
解决方案:
" iIndex = ucCRCLo ^ b: 这样的操作必须写成 iIndex = (ucCRCLo ^ b)&0xff 因为 & 会将 ucCRCLo, b 和结果转换为 int,它是 32 位,而 short 是 16,所以你会有很多额外位设置为 1"
这个答案帮助了我。非常感谢TheDayOfcondor
但我最大的问题也是Java中带有符号字节的常见问题。我的 CRC 计算函数对无符号字节是正确的,但如果我在有符号字节内传递它会出错。使用字节进行 ModBUS 通信的技巧是在整个应用程序中使用短字节作为字节,范围为 0-255,甚至计算电车和 CRC。并且仅在最后一步中,将 Trame 发送到 ModBUS 服务器时,再次将它们转换为字节。这正在运行。
希望它对将来的人有所帮助。
解释问题:
我正在尝试使用功能 05 将线圈设置为 ModBUS,这是对功能的解释:
要求
我正在尝试在地址 1 上设置线圈:
这个十六进制:0A 05 00 01 ff 00 DC 81
这个字节数组:10 5 0 1 255 0 220 129
10:从地址(10 = 0A hex)
05:功能代码(强制单线圈)
0001:线圈的数据地址。(线圈#1 = 01 十六进制)
FF00:要写入的状态(FF00 = ON,0000 = OFF)
DC81:用于错误检查的 CRC(循环冗余校验)。
问题是 Java 使用有符号字节,所以我不能将 255 放在我的字节数组上。我知道我应该输入 -1,但是我无法正确计算 CRC,因为我有几个预先计算的字节数组来获取 CRC,但函数发送一个负索引。
所以:我不知道我尝试发送-1是否正确,如果我有发送255的替代方法,也不知道如何计算-1的CRC。
这是计算CRC的函数:
matlab - 1] 在脚本运行期间更改变量值 2] 在循环中运行脚本时不会更新工作区中的变量值
我正在使用 modbus RTU(串行通信)通过 Matlab 控制锅炉试验工厂。
我通过一个循环运行我的控制程序(在编辑器中)45分钟,但我面临两个问题:
1] 运行程序时我无法更改任何变量值,这是非常需要的。
2] 运行脚本时,我无法在工作区中看到实时数据。
它在完成执行时间后更新所有变量。对于我的应用程序,我希望每次迭代都出现数据。
我无法解决它们,所以我切换到 simulink,但这更令人沮丧。
在 simulink 中,我使用用户定义的块(嵌入式 Matlab 函数)来生成不支持内置 matlab 函数(如 dec2hex)的 modbus 地址 PDU。
请有人在 simulink 中告诉我,串行发送/接收支持哪种数据格式?(ASCII/HEX/DEC)
tcp - MODBUS,设备可以响应的最长时间吗?
在与 MODBUS 设备通信时,设备在被视为超时之前可以响应多长时间是否有上限?我正在尝试确定将读取超时设置为什么。MODBUS RTU 和 TCP 的答案都很好。
serial-port - MODBUS 自动地址分配
有谁知道可以自动设置MODBUS地址的方案?在我的情况下,我将启动许多从属设备,并且需要一些自动分配地址的方法。
c# - C# 拆分帧中的 SerialPort 通信
我需要编写一个程序,它将通过 RS485 监听 ModBus 网络中的通信。我使用 RS485 <> USB 加密狗连接到网络。
我可以使用 SerialPort.DataReceived 事件读取一些数据,但它会给出奇怪的结果。数据通常是拆分的,但它应该是一体的。(Modbus 主站每 100 毫秒传输一次)。
我没有任何开始登录传输。帧之间的延迟是最小的。3.5 个字符,字符之间的最大延迟为 1.5 个字符。
android - Android 应用程序中的 Modbus4j
我在 Android 应用程序中使用 modbus4j。在我用java测试它之前,它工作正常。但在 Android 中,master.init() 有问题,它不起作用。在清单中,我添加了 Internet 和访问网络状态的权限。我有一个或多或少这样的代码:
但是主人永远不会被初始化。我可以看到一个例外。“android.os.NetworkOnMainThreadException”
你知道我该如何解决这个问题吗?