描述:我使用的是 Windows CE HMI,在 vb.net 中编写代码。我正在通过 Modbus RTU (RS485) 与 4 个流量计进行通信。我正在使用 dll 进行 Modbus 通信。现在,当我在我的程序中启动一个新线程来运行模块的一部分时,一切正常,我正在与 4 米通信。到现在为止还挺好。但是现在我想让我的代码更有效率,而不是在一个模块中抛出四米的所有代码,我想创建 4 个类。
我在我的主窗体(按钮)中得到了这段代码来创建对象。
Dim Meter1 As New cModbusDriver(1) '(1) is the Modbus Meter ID
Dim Meter1_Thread As New Thread(AddressOf Meter1.ModbusDriver)
Meter1_Thread.IsBackground = True
Meter1_Thread.Start()
Run Code Online (Sandbox Code Playgroud)
以下是我班级的一部分:
Public Class cModbusDriver
Private master As ModbusSerialMaster
Public Sub ModbusDriver()
While blnStopModbusThread = False
Select Case intState
Case 1
Try
Dim holding_register() As UShort = master.ReadHoldingRegisters(1, 0, 8)
Flow = HextoFloat.ConvertHexToSingle((Hex(holding_register(1)) & Hex(holding_register(0))))
Run Code Online (Sandbox Code Playgroud)
错误 System.NullReferenceException 来自该行Dim …
vb.net ×1