根据这个howToModbusSlave我试图用选定值的寄存器构建我自己的modbus slave(后来我想用来自使用python / jython的受监视设备的数据填充这些值),并使用Predix(云平台)将它们发送出去。由于我是modbus新手,我仍然无法找到如何将我选择的值添加到我的注册持有人的方法。

以下是我用于在localhost上为Master提供数据的从属线程:502:

public class SimpleApp {

public static void main(String args[]) {

try {

//1. The important instances and variables

ModbusTCPListener listener = null;

SimpleProcessImage spi = null;

int port = 502;

//2. Prepare a process image

spi = new SimpleProcessImage();

//I dont understand this part, why do i need it?

spi.addDigitalOut(new SimpleDigitalOut(true));

spi.addDigitalOut(new SimpleDigitalOut(false));

spi.addDigitalIn(new SimpleDigitalIn(false));

spi.addDigitalIn(new SimpleDigitalIn(true));

spi.addDigitalIn(new SimpleDigitalIn(false));

spi.addDigitalIn(new SimpleDigitalIn(true));

//setting up register holders, gonna ask no 10,11,20 and 21 as set in the data node config

for (int i = 0; i < 25; i++) {

int value = 15;

SimpleInputRegister sr = new SimpleInputRegister(value);

spi.addRegister(sr);

}

//3. Set the image on the coupler

ModbusCoupler.getReference().setProcessImage(spi);

ModbusCoupler.getReference().setMaster(false);

ModbusCoupler.getReference().setUnitID(15); //15

//4. Create a listener with 3 threads in pool

listener = new ModbusTCPListener(1); //no of threads

listener.setPort(port);

listener.start();

} catch (Exception ex) {

ex.printStackTrace();

}

}

}数据节点配置:

我得到这些传输(“输出”):

[{"address":"com.ge.dspmicro.machineadapter.modbus://127.0.0.1:502/2/20","datatype":"INTEGER","name":"Node-2-1","category":"REAL","value":655370,"timestamp":1464006550991,"quality":"NOT_SUPPORTED (20000000) "},

{"address":"com.ge.dspmicro.machineadapter.modbus://127.0.0.1:502/1/10","datatype":"INTEGER","name":"Node-1-1","category":"REAL","value":655370,"timestamp":1464006550992,"quality":"NOT_SUPPORTED (20000000) "}]主要问题:

1)来自节点1-2和2-2的数据在哪里(输出中缺少)?

2)如何编辑从寄存器发送的值? (为什么我得到“价值”:655370?)

可选的Qustions :(我在documentation中不理解的东西)

3)simpleDigitalOut / In代表什么类?

4)ModbusCoupler.getReference()。setUnitID(value)代表什么? (它显然不需要做与数据节点的unitID相同的任何事情

5)SimpleInputRegister和SimpleRegister类有什么区别?

Linux c modbus 线程,Modbus TCP Slave Thread - 设置和获取寄存器值相关推荐

  1. 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称

    文章目录 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称 ...

  2. Linux c modbus 线程,Modbus读写模拟量寄存器详解

    读可读写模拟量寄存器: 发送命令(主机向从机)格式: [设备地址] [命令号03] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高 ...

  3. linux 子程序返回错误代码,execvp:在程序中调子程序并获取返回值

    在linux中我们可以很方便的使用system启动子程序,但是system有个不足就是它对子程序的掌控很弱,连返回数值都很难获取. 下面是一段使用execvp来调用子程序的示例代码,关于下面的代码有几 ...

  4. 一文搞定Linux环境下线程编程,这些东西老师也不会教你。(史上最详细的线程攻略)

    一.线程的概念 1.1 什么是线程 线程是一个实体,是CPU调度和分派的基本单元,有时我们也可以称它为轻量级的进程.每个线程都包含有表示执行环境所必须的信息,其中包括标识线程 的线程ID.一组寄存器值 ...

  5. 多线程(一)线程与进程、Thread

    文章目录 前言 一.初识多线程 1.1 并行.并发.串行 1.2 并发编程的优缺点 1.2.1 并发编程的优点 1.2.2 并发编程的缺点 1.3 上下文切换 1.3.1 上下分切换的分类 1.3.2 ...

  6. 【Linux 内核】进程优先级与调度策略 ③ ( 设置、获取线程优先级的核心函数 | 修改线程调度策略函数 )

    文章目录 一.设置.获取线程优先级的核心函数 二.修改线程调度策略函数 一.设置.获取线程优先级的核心函数 设置.获取 线程 优先级的 核心 函数 : ① 设置 " 创建线程 " ...

  7. python获取返回值_【Python】python获取线程的返回值

    threading模块默认没有获取线程返回值的方法. 下面通过重写threading.Tread类来实现:from threading import Thread import random impo ...

  8. Modbus在Android上的应用之Modbus TCP Slave

    Modbus TCP Slave 这篇文章是接着我上一篇文章的.Modbus在Android上的应用之Modbus TCP Master 之前做了很多项目都是在用Master,Android端做主站, ...

  9. ModBus(RTU TCP UDP通信)及利用socket通信(DTU)实现Modbus-RTU通信协议

    目录 MODBUS-RTU 1.Modbus Slave连接串口 2.MODBUS-RTU配置环境 3.ModBus-RTU的通信代码 4.ModBus-RTU执行的方法细节,简说 MODBUS-TC ...

最新文章

  1. vs如何将工程配置,保存到属性表
  2. js获取本月第几周和本年第几周
  3. 聊一下我们团队的理念
  4. Java GUI编程:swing创建窗体代码详解
  5. ssm 异常捕获 统一处理_统一异常处理介绍及实战,看这篇就对了
  6. [多图]Google Chrome漫画书中文版
  7. 镜像体积减小_docker镜像从1.16G优化到22M
  8. 分享前几年的外包经历,给正在犹豫要不要去外包的学弟学妹做参考.
  9. 基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - ActiveXForm在线体验安全设置...
  10. Linux通过源码编译安装程序;yum和源码安转软件包的区别
  11. 静态对象和非静态对象的区别
  12. 安利 19 个程序员可以接私活的平台,你有技术就有钱
  13. 《iVX 高仿美团APP制作移动端完整项目》07 会员页制作
  14. 基于python的词频分析
  15. python使用 photoshop-python-api 调用ps处理批量动作操作
  16. C# .net+DevExpress自定义控件(UserControl)之分页控件
  17. Linux下的man指令
  18. 基于MATLAB的R方计算
  19. IE浏览器input元素text-overflow: ellipsis
  20. 结合若依框架实现微信小程序授权登录

热门文章

  1. 我什么时候应该真正使用noexcept?
  2. 如何在Windows CMD的一行中运行两个命令?
  3. 通过按Enter阻止用户提交表单
  4. TCP方式的网络通信【聊天器示例】
  5. vim设置tab宽度为4_vim编辑器VimScript插件开发系列一「定制Vim 3」
  6. socket不能bind请求的地址_深入浅出讲解:php的socket通信
  7. 洛谷——P1887 乘积最大3
  8. Open3d之点云可视化
  9. 将vim打造成python开发工具
  10. Spring 数据处理框架的演变