tcpip-使用MODBUS再TCPIP上通信的问题

问题描述

使用MODBUS再TCPIP上通信的问题

Public Sub WriteQW16(ByVal Address As Short, ByVal value As Short)
Dim buffer As Byte()
If Me.Connected = False Then
'Information.Err().Raise(0x215, "", "not connected", null, null);
Throw New Exception("not connected!")
End If

    Dim buffer3(14) As Byte
    Dim num As Integer = 0

    Dim bytes As Byte()
    bytes = BitConverter.GetBytes(value)

    Dim nsStream As NetworkStream = Me.nsStream
    SyncLock nsStream
        'Address = (short) Math.Round((double) (((double) Address) / 2.0));
        'Dim bytes As Byte()
        'bytes = BitConverter.GetBytes(Address)

        Dim buffer4 As Byte()
        buffer4 = BitConverter.GetBytes(Address)

        buffer3(0) = 0
        buffer3(1) = 0
        buffer3(2) = 0
        buffer3(3) = 0
        buffer3(4) = 0
        buffer3(5) = 9

        buffer3(6) = 255 '0xff
        buffer3(7) = 16 '0x10;
        buffer3(8) = buffer4(1)
        buffer3(9) = buffer4(0)
        buffer3(10) = 0
        buffer3(11) = 1
        buffer3(12) = 2
        buffer3(13) = bytes(1)
        buffer3(14) = bytes(0)

        Me.nsStream.Write(buffer3, 0, 15)
        Me.nsStream.Flush()

        Do
            Thread.Sleep(1)
            num = num + 1
            If num > 200 Then
                Throw New Exception("超时!")
            End If
        Loop While (Me.t1Client.Client.Available < 12)
        ReDim buffer(Me.t1Client.Client.Available - 1 + 1)
        Me.nsStream.Read(buffer, 0, Me.t1Client.Client.Available)
        Dim ii As Integer
        ii = 0

    End SyncLock

End Sub

    以上是写的过程,发送单个任务,不明白数组是根据MODBUS哪个功能码,对方是如何识别数组当中的数据的,麻烦大神解释一下,看完MODBUS协议,不知道这个是如何进行通信的,为什么数组长度偏偏是15个?
时间: 2024-10-24 23:23:28

tcpip-使用MODBUS再TCPIP上通信的问题的相关文章

asp.net里能不能再图片上填按钮或者控件?

问题描述 asp.net里能不能再图片上填按钮或者控件? asp.net里能不能再图片上填按钮或者控件?怎么填,网页的美工弄的不好,需要加个图片,加过之后却是平铺的,有没有办法居中?

java-下面是两张图片,就是点击编辑改变css样式,怎样实现,还要再dialog上点击,实现删除

问题描述 下面是两张图片,就是点击编辑改变css样式,怎样实现,还要再dialog上点击,实现删除 # 解决方案 你下面的标签用div容器float布局,div relative定位,那个xx按钮absolute定位,默认隐藏.点击编辑的时候新增一个样式给div容器,这个样式控制xx的显示. 大概demo如下,居于jquery的,那个xx的样式你自己调整了 <script type="text/javascript" src="http://ajax.aspnetcdn

arm-ntpdate报错 意思说是在PC机上运行的不能再板子上运行

问题描述 ntpdate报错 意思说是在PC机上运行的不能再板子上运行 检查文件格式是 ARM格式的,而且如果说是C程序的话在板子上也是可以运行的 也就是说交叉编译没有错误 但是用ntpdate的时候 还是会报交叉编译的错误 求大神解答 解决方案 ARM 与 PC 交叉编译,虽然说是用 C 语言写的程序,但也不是说就完全不用修改在两个平台上都可以编译通过的.当然,如果编写代码时考虑过跨平台,可以修改一下交叉编译的宏就可以分别完成在两个平台上的编译. 编译报错,需要具体分析错误.这个需要错误信息和

Modbus RTU协议TCP通信代码

问题描述 Modbus RTU协议TCP通信代码 空调远程控制系统使用的是modbus4j不成功,初次使用modbus设备 协议解析一.读取设备状态发送:设备地址 功能号 起始寄存器 寄存器字节个数 CRC校验1字节 01H 0x00 0x00 0x00 0x01 MSB LSB返回:设备地址 功能号 起始寄存器 数据字节个数 设备状态 CRC校验1字节 01H 0x00 0x00 0x00 0x01 9字节 MSB LSB 测试指令:发送:01 01 00 00 00 09 MSB LSB返回

app开发-WeX5中打完Android包后再手机上运行,静态页面加载出来了,但是不能发请求

问题描述 WeX5中打完Android包后再手机上运行,静态页面加载出来了,但是不能发请求 打包时设置的首页显示出来了,但是点击首页上的按钮,没有反应,没有执行js中的点击方法 解决方案 没用过 刚刚百度了下 才知道有WeX5这东西

link中除了二维数组,还有什么情况下可以在数组后面再跟上数组?

问题描述 link中除了二维数组,还有什么情况下可以在数组后面再跟上数组? link中除了二维数组,还有什么情况下可以在数组后面再跟上数组? 解决方案 只要支持索引器的都可以,比如说 List<int[]> List<int>[] List<List<int>> int[][]

网站被腾讯手机管家检测危险网站,不能再浏览器上打开怎么办?求高手帮忙

问题描述 我的网站被腾讯手机管家检测危险网站,不能再浏览器上打开怎么办?求高手帮忙 解决方案 解决方案二:卸载腾讯管家解决方案三:..二楼是正解

android和ios手机客户端如何和springMVC网站交换数据?比较财务审核可以再手机上进行?

问题描述 android和ios如何和springMVC网站交换数据?比较财务审核可以再手机上进行?我做的是个旅游系统管理程序,想做个手机客户端程序,经行财务订单审核问题1.springMVC网站通过什么技术和手机客户端交换数据问题2.我网站这块需要做哪些东西准备?问题3.可以提供这方面的资料链接吗?主要是android这块? 解决方案 我个人觉得spring mvc网站和ios,android进行交互,这个想法不太正确.你可以理解为,spring mvc网站,其实是client/service

期指徘徊一段时间再升上17477现报17422

中国资产管理有限公司 冯智冲 期指徘徊一段时间后再升上17477,现报17422,期指升上17390略回调至17250,然后争持,如早前指除石油股外,昨天倒升幅度相对少的汇控(00005-HK)及中移动(00941-HK)亦顶上支持住指数,期指倾只以高位徘徊形式调整,而期指徘徊一段时间后再上升至17477,向上扩阔即市波幅至227点,期指仍在伺机试高.