我希望我能解释。我正在尝试以ASCII模式开发Modbus。我需要做的是我有一个不同的传感器,因为我有一个数字文本框,用于选择传感器的设备地址,它看起来像:-
当我选中复选框时,传感器应该先读取一个传感器的数据,然后再读取另一个传感器的数据。我的阅读代码如下
public string cmdMake(int cmd, int rw)
{
string strCmd = "D";
if(ChkDev1.Checked == true)
{
strCmd = strCmd + Convert.ToInt32(numSlave.Value).ToString("X2");
}
if(ChkDev2.Checked == true)
{
strCmd = strCmd + Convert.ToInt32(numSlave1.Value).ToString("X2");
}
AsciiCode ascCode = new AsciiCode();
if (rw == CMD_RD) //読み込み
{
strCmd = strCmd + "07" + cmd.ToString("X2");
strCmd = strCmd + dterr_chk.CalCRC16(strCmd);
}
strCmd = strCmd + ascCode.STR_CRLF;
return (strCmd);
}
在上面的代码中,主要问题是仅读取传感器数据的最后一个。在我上面的代码中,numslave.value和numslave1.value是数字文本框,用于选择设备地址和。在上面的代码中,我仅以两个从属地址为例,实际上我有10个从属地址。请帮我解决这个问题。预先感谢