public static modbusclient modbusclient = null;
public mainviewmodel()
{
modbusclient = new modbusclient("192.168.0.202", 502);
try
{
modbusclient.unitidentifier = 1;//地址
modbusclient.baudrate = 9600;
modbusclient.connectiontimeout = 500;
modbusclient.connect();
//-----------bool 写入地址位----
string tbaddr = "39"; //地址
string tbbit = "10"; //位
var tmp_read = modbusclient.readholdingregisters(int.parse(tbaddr), 1);
//写入true
int pos = int.parse(tbbit);
var wr_f = tmp_read[0] | (1 << pos);
modbusclient.writesingleregister(int.parse(tbaddr), wr_f);
thread.sleep(3000);
//写入false
int mask = ~(1 << int.parse(tbbit));
int rr = tmp_read[0] & mask;
modbusclient.writesingleregister(int.parse(tbaddr), rr);
//-----------bool 写入地址位----
//bool
modbusclient.writesinglecoil(0, true);
bool[] result_bool = modbusclient.readcoils(0, 8);
console.writeline("bool:" + result_bool[0]);
//int v4060
modbusclient.writemultipleregisters(2030, modbusclient.convertinttoregisters(555, registerorder.highlow));
int[] intvalue = modbusclient.readholdingregisters(2030, 2);
int result = modbusclient.convertregisterstoint(intvalue, registerorder.highlow); //地址号
console.writeline("int:" + result);
//float vd400
modbusclient.writemultipleregisters(2000, modbusclient.convertfloattoregisters(3.3f, registerorder.highlow));
int[] floatvalue = modbusclient.readholdingregisters(2000, 2);
float floatresult2 = modbusclient.convertregisterstofloat(floatvalue, registerorder.highlow);//0为lowhigh 1为highlow
console.writeline("float:" + floatresult2.tostring("0.00"));
modbusclient.disconnect();
messagebox.show("连接成功");
}
catch (exception ex)
{
messagebox.show("连接失败");
console.writeline(ex);
modbusclient.disconnect();
//return -1;
}
发表评论