android modbus协议之 (二)modbus-TCP/IP通信(安卓系统作为主站完善代码)

至此modbus_TCPmast管理类基本已经写完并做了一个测试的APP大家可以试一试稍后我把APP的源代码上传上去

上一节使用jamod库做了一个简单的读取,在完善代码的过程中其中写入多寄存器的时候碰到了点问题我把代码贴出来大家注意一下

在写入保持寄存器时需要用到这个请求的方法
public WriteSingleRegisterRequest(int ref, Register registers)
但是Register是个抽象类 new不出来 所以各种搜索,弄不好,突然发现jamod里面竟然有demo瞬间明白了,真正的类在这里呢
public class SimpleRegister extends SynchronizedAbstractRegister implements Register

jamod demo存放的地方大家有时间看一下

在这里插入图片描述
在这里插入图片描述

  /**
     * @函数名称: write_F06_4x(写入 功能码6 4x区)
     * @功能:   功能码06  写入4x分区(保持寄存器) 单个寄存器数据 此部分的寄存器可读可写 03功能码读取 06写入 16写入多个
     * @输入参数: 寄存器起始地址  需要设置的值
     * @输出类型:无
     * @作者: 腾飞
     * function code 06 write single register
     */
    public void write_F06_4x(final  int register_addr,final int value){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try{
                  connect_device();
                    //准备请求

                    SimpleRegister new_out = new SimpleRegister(value);
                    WriteSingleRegisterRequest req=new WriteSingleRegisterRequest(register_addr,new_out); //写入单个寄存器
                    req.setUnitID(unitID);//

                    //准备处理
                    ModbusTCPTransaction trans = new ModbusTCPTransaction(mconnection);//开始处理
                    trans.setRequest(req);//设置地址
                    trans.execute();

                    WriteSingleRegisterResponse res=(WriteSingleRegisterResponse) trans.getResponse();//获取获取写入线圈请求响应

                    modbus_callback.mcallback(6,false,"function code 06 write single register");
                }catch (Exception e){

                    modbus_callback.mcallback(6,false,e.getMessage());
                }

            }
        }).start();

    }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
TCP/IP协议族是互联网通信的基础,而Modbus TCP/IP是工业控制领域的一种通信协议,它是在TCP/IP之上建立的一种应用层协议。将TCP/IP协议转换为Modbus TCP/IP协议的过程可以分为几个步骤: 1. **数据包封装**:首先,原始的TCP/IP数据包(例如,HTTP、FTP请求等)需要被解析或分离,然后用Modbus报文头替换原有的应用层头部。这通常涉及到找到设备的IP地址和端口,以及确定Modbus功能码(如读取、写入或功能码0x03的读取线圈)。 2. **报文结构**:Modbus TCP/IP报文包含了功能码、寄存器地址和数量、单位标识符等信息。根据这些字段,构建出符合Modbus RTU或TCP规范的数据段。 3. **Modbus规约**:Modbus有两种要版本,Modbus RTU适用于串行通信,而Modbus TCP则用于网络环境。在TCP上,每个Modbus帧会包含完整的TCP/IP头部,确保数据在网络中可靠传输。 4. **协议栈调整**:在发送到网络之前,这个Modbus TCP/IP报文会经过相应的协议栈处理,如TCP三次握手和确认过程。 5. **接收与解析**:当收到的网络数据到达目的地后,接收端需要根据Modbus帧的特性进行解封和解析,提取出实际的控制命令和参数。 **相关问题:** 1. TCP/IP协议Modbus TCP/IP协议要区别是什么? 2. Modbus支持哪些要的功能? 3. 如何验证两个设备是否遵循Modbus TCP/IP通信标准? 4. 如果在转换过程中遇到错误,有哪些常见的排查方法? 5. 对于工业自动化系统,使用Modbus TCP/IP有何优势?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值