close

1.前言
許多數位儀表都支持Modbus通訊協定,它是工業領域通訊的標準,透過程式控制,可以遠端讀取並紀錄資料。

2.說明
有關Modbus通訊協定,可參考wiki的說明
https://en.wikipedia.org/wiki/Modbus

Modbus的driver可用NModbus,下載位置
http://www.icpdas.com/news/news_events/2010/2010100102_c.htm
下載NModBus原始版本NModbus_net-2.0_1.11.0.0-source
檔案解壓縮後,將bin下面的檔案複製到自己專案的bin目錄下
最新版程式碼下載位置:
http://code.google.com/p/nmodbus/

加入參考
FtdAdapter
log4net
Modbus

加入命名空間

using FtdAdapter;
using Modbus.Data;
using Modbus.Device;
using Modbus.Utility;

Modbus TCP讀取數值方法

public double ModbusTcpMasterReadInputRegistersFromModbusSlave()
{
	double tempValue = 0;
	// Port
	int port = 5000;
	// IP Address
	IPAddress address = new IPAddress(new byte[] { 192, 168, 1, 100 });
	TcpClient masterTcpClient = new TcpClient(address.ToString(), port);

	try
	{
		ModbusIpMaster master = ModbusIpMaster.CreateIp(masterTcpClient);
		ushort numInputs = 1;
		ushort startAddress = 0;
		ushort[] inputs = master.ReadInputRegisters(startAddress, numInputs);
		tempValue = double.Parse(inputs[0].ToString());
		masterTcpClient.Close();
	}
	catch
	{
		masterTcpClient.Close();
	}

	return tempValue;
}
arrow
arrow
    文章標籤
    C# Modbus TCP
    全站熱搜

    西夏普 發表在 痞客邦 留言(1) 人氣()