问题标签 [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.
visual-studio-2010 - MFC 中的 libmodbus
我正在尝试将 libmodbus 提供的 modbus 库集成到 Visual Studio 2010 中的自定义 MFC 项目中。
到目前为止,我遵循的步骤如下:
1) 我在 Visual Studio 2010 中创建了项目,如下面的快照所示:
2)我已经编辑了代码以包含一个小的 hello world 代码,只是为了检查它是否可以编译。
3) 我已将 libmodbus-3.0.3 的 src 文件夹中的 .c 和 .h 文件复制到 Visual Studio 项目文件夹中,如下所示,并将它们包含在项目中。
4)当我尝试编译时,它给了我以下错误:
我的疑惑如下:
1) 我是否在我的项目中正确包含了 libmodbus?还是有更好或更正确的方法来做同样的事情?
2)如何消除即将出现的错误:无法打开包含文件:'config.h'。没有这样的文件或目录。我已经看到我从http://libmodbus.org/download/
下载的 libmodbus-3.0.3 中没有 config.h 文件
如何继续?
谢谢你。
java - Java libmodbus 本机库 unsatisfiedLinkError
嗨,当我执行我的项目 jar 时,我得到以下信息。
该库在我的路径中。我也尝试过绝对路径,但没有任何安慰。但是当我运行一个具有相同共享库的小型测试程序时,它运行良好。但是当我将它包含在我的项目中时,它会产生异常。我不知道为什么它表现得很奇怪。
这是我的文件
JNI Java 类 ::
C 代码的头文件
本机 C 代码
我没有奇怪的行为。谁能指导我解决我的问题?
谢谢
function - Seneca Z-3AO 是否理解功能 5 代码(Modbus RTU)?
在用户手册中他们只指定了“模拟输出保持寄存器”的地址,它允许您实现功能码 3、6 和 16。
PS。我想更改 Eprflag 寄存器(位 12)中的单个线圈(位),但用户手册没有指定该线圈的数据地址。例如:第 12 位的线圈编号为 00002,这给了我们 2-1=1 作为数据地址。
arduino - Arduino ModBus 通信
我有主/从代码 Arduinos。如何将它们与 Arduino 板上的引脚连接?我正在使用SimpleModbus库,但没有关于连接它们的信息。
图书馆是
vala - 在 Vapi 定义中用于通过引用传递数组的参数
我有以下使用 libmodbus 使用 ModbusTCP 读取单个设备寄存器的 C 代码:
现在尝试使用我生成的 Vapi 将其切换到 Vala,new 和 read 的内容是:
翻译后的 Vala 程序是:
巧合的是,当我将它编译成 C 代码,然后使用 gcc 编译成二进制文件时,我得到了错误:
这并不奇怪。但我不确定我应该如何修改 Vapi 内容以更接近 libmodbus 标头中的原型:
我尝试了混合使用数组选项并使用“out”,但一次只能获得一个双字节寄存器。
感谢您的任何建议。
python-3.x - 如何在 Python 中重新排列字节数组中的字节?
我是 python 新手,从事与嵌入式相关的工作(我的大部分编程经验都是使用 C)。
我正在从串行端口将一个四字节浮点数读入一个字节数组,但它不是正常的小端顺序 DCBA,而是编码为 CDAB。或者它可能被编码为 BADC。(其中 A 是最高有效字节,D 是 LSB)。在字节数组中交换字节的正确方法是什么?
例如,我有
我希望能够任意排列 tmp 中的字节,然后将其 unpack() 放回浮点数中。
在做任何与嵌入式系统相关的事情时,这样的事情似乎是必不可少的,但要么我在谷歌上搜索错了,要么没有明确的答案(还没有!)。
编辑:当然,我可以这样做:
但必须有更好的方法......
理想情况下,我希望能够随意切片和重新连接,或者如果可能的话,甚至一次更换一个切片。
modbus - 您如何找到总 Modbus/TCP 数据的长度?
Modbus/TCP 数据包包括长度部分,即总 Modbus/TCP 数据的长度减去 6 个字节。您如何计算 Modbus/TCP 总数据的长度?
java - 获取字节数组的 CRC 校验和并将其添加到该字节数组
我有这个字节数组:
现在,这个字节数组的CRC校验和应该是0x60,0x0A。我希望 Java 代码重新创建此校验和,但我似乎无法重新创建它。我试过crc16:
并使用 Integer.toHexString() 转换它们,但没有一个结果与正确的 CRC 匹配。有人可以在CRC公式方面为我指出正确的方向。
c# - 如何从定时事件中恢复功能
好的,所以我有一个名为 readSensor 的函数,你猜对了……读取传感器。
但传感器通常需要大约 100 毫秒才能做出响应。所以在 readSensor 函数中,我基本上只是在启动一个计时器。
在定时事件中,我读取了串口并得到了回复。
然而,这意味着当我希望它位于 readSensor 函数中时,我的响应位于 onTimedEvent 中。
基本上从我希望能够做到这一点的主要形式。
值 = 读取传感器()
此刻我所能做的就是 readSensor() ,然后一旦 timedEvent 触发,我就可以通过在消息框中显示响应来看到响应正在返回。
这是我的代码。(我错过了很多串口设置和东西,但希望你能看到我遇到的问题)
我不想在函数中等待 100 毫秒,尽管轮询计时器,因为这会使我的程序变慢..
我想以某种方式将响应返回到 readSensor 函数,然后返回到表单。
在主要形式中,我基本上只是在说
单击按钮。