NModbus实例资料下载.pdf

上传人:wj 文档编号:5975485 上传时间:2023-05-05 格式:PDF 页数:6 大小:85.59KB
下载 相关 举报
NModbus实例资料下载.pdf_第1页
第1页 / 共6页
NModbus实例资料下载.pdf_第2页
第2页 / 共6页
NModbus实例资料下载.pdf_第3页
第3页 / 共6页
NModbus实例资料下载.pdf_第4页
第4页 / 共6页
NModbus实例资料下载.pdf_第5页
第5页 / 共6页
NModbus实例资料下载.pdf_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

NModbus实例资料下载.pdf

《NModbus实例资料下载.pdf》由会员分享,可在线阅读,更多相关《NModbus实例资料下载.pdf(6页珍藏版)》请在冰点文库上搜索。

NModbus实例资料下载.pdf

SimpleModbusserialASCIImasterreadholdingregistersexample.using(SerialPortport=newSerialPort(COM1)/configureserialportport.BaudRate=9600;

/createmodbusmasterIModbusSerialMastermaster=ModbusSerialMaster.CreateAscii(port);

ushortstartAddress=1;

ushortnumRegisters=5;

/readfiveregistersushortregisters=master.ReadHoldingRegisters(slaveID,startAddress,numRegisters);

for(inti=0;

inumRegisters;

i+)Console.WriteLine(Register0=1,startAddress+i,registersi);

/output:

/Register1=0/Register2=0/Register3=0/Register4=0/Register5=0SimpleModbusserialUSBRTUmasterwritemultiplecoilsexample.using(FtdUsbPortport=newFtdUsbPort(0)/configureusbportport.BaudRate=9600;

port.Parity=FtdParity.None;

port.StopBits=FtdStopBits.One;

/writethreecoilsmaster.WriteMultipleCoils(slaveID,startAddress,newbooltrue,false,true);

DonateNModbusisdevelopedandmaintainedonavoluntarybasisandprovidedfreeofcharge.UpcomingFeaturesWPFNModbusMasterMasterConsoleWrapperFTDIUSBSlaveHomeSamplesDownloadsDiscussionIssuesNModbushttp:

/web.archive.org/web/20090601225835/http:

/www.第1页共6页2011/07/069:

49SimpleModbusserialUSBASCIImasterwritemultiplecoilsexample.using(FtdUsbPortport=newFtdUsbPort(0)/configureusbportport.BaudRate=9600;

SimpleModbusTCPmasterreadinputsexample.using(TcpClientclient=newTcpClient(127.0.0.1,502)ModbusIpMastermaster=ModbusIpMaster.CreateTcp(client);

/readfiveinputvaluesushortstartAddress=100;

ushortnumInputs=5;

boolinputs=master.ReadInputs(startAddress,numInputs);

inumInputs;

i+)Console.WriteLine(Input0=1,startAddress+i,inputsi?

1:

0);

/Input100=0/Input101=0/Input102=0/Input103=0/Input104=0SimpleModbusUDPmasterwritecoilsexample.using(UdpClientclient=newUdpClient()IPEndPointendPoint=newIPEndPoint(newIPAddress(newbyte127,0,0,1),502);

client.Connect(endPoint);

ModbusIpMastermaster=ModbusIpMaster.CreateUdp(client);

/writethreecoilsmaster.WriteMultipleCoils(startAddress,newbooltrue,false,true);

SimpleModbusserialRTUslaveexample.using(SerialPortslavePort=newSerialPort(COM2)/configureserialportslavePort.BaudRate=9600;

slavePort.DataBits=8;

slavePort.Parity=Parity.None;

slavePort.StopBits=StopBits.One;

slavePort.Open();

byteunitID=1;

/createmodbusslaveModbusSlaveslave=ModbusSerialSlave.CreateRtu(unitID,slavePort);

slave.DataStore=DataStoreFactory.CreateDefaultDataStore();

slave.Listen();

NModbushttp:

/www.第2页共6页2011/07/069:

49SimpleModbusSerialASCIIslaveexample.using(SerialPortslavePort=newSerialPort(COM2)/configureserialportslavePort.BaudRate=9600;

/createmodbusslaveModbusSlaveslave=ModbusSerialSlave.CreateAscii(unitID,slavePort);

SimpleModbusTCPslaveexample.byteslaveID=1;

intport=502;

IPAddressaddress=newIPAddress(newbyte127,0,0,1);

/createandstarttheTCPslaveTcpListenerslaveTcpListener=newTcpListener(address,port);

slaveTcpListener.Start();

ModbusSlaveslave=ModbusTcpSlave.CreateTcp(slaveID,slaveTcpListener);

/preventthemainthreadfromexitingThread.Sleep(Timeout.Infinite);

SimpleModbusUDPslaveexample.using(UdpClientclient=newUdpClient(502)ModbusUdpSlaveslave=ModbusUdpSlave.CreateUdp(client);

ModbusTCPmasterandslaveexample.byteslaveID=1;

/www.第3页共6页2011/07/069:

49/createandstarttheTCPslaveTcpListenerslaveTcpListener=newTcpListener(address,port);

ThreadslaveThread=newThread(slave.Listen);

slaveThread.Start();

/createthemasterTcpClientmasterTcpClient=newTcpClient(address.ToString(),port);

ModbusIpMastermaster=ModbusIpMaster.CreateTcp(masterTcpClient);

/readfiveregistervaluesushortinputs=master.ReadInputRegisters(startAddress,numInputs);

i+)Console.WriteLine(Register0=1,startAddress+i,inputsi);

/cleanupmasterTcpClient.Close();

slaveTcpListener.Stop();

/output/Register100=0/Register101=0/Register102=0/Register103=0/Register104=0ModbusserialASCIImasterandslaveexample.using(SerialPortmasterPort=newSerialPort(COM1)using(SerialPortslavePort=newSerialPort(COM2)/configureserialportsmasterPort.BaudRate=slavePort.BaudRate=9600;

masterPort.DataBits=slavePort.DataBits=8;

masterPort.Parity=slavePort.Parity=Parity.None;

masterPort.StopBits=slavePort.StopBits=StopBits.One;

masterPort.Open();

/createmodbusslaveonseperatethreadbyteslaveID=1;

ModbusSlaveslave=ModbusSerialSlave.CreateAscii(slaveID,slavePort);

ThreadslaveThread=newThread(newThreadStart(slave.Listen);

/createmodbusmasterModbusSerialMastermaster=ModbusSerialMaster.CreateAscii(masterPort);

master.Transport.Retries=5;

/readfiveregistervaluesushortregisters=master.ReadHoldingRegisters(slaveID,startAddress,numRegisters);

/output/Register100=0/Register101=0/Register102=0/Register103=0/Register104=0WriteandRead32bitvalueexample.uintlargeValue=UInt16.MaxValue+5;

ushortlowOrderValue=BitConverter.ToUInt16(BitConverter.GetBytes(largeValue),0);

ushorthighOrderValue=BitConverter.ToUInt16(BitConverter.GetBytes(largeValue),2);

/writelargevalueintwo16bitchunksmaster.WriteMultipleRegisters(slaveID,startAddress,newushortlowOrderValue,highOrderValue);

/readlargevalueintwo16bitchunksandperformconversionushortregisters=master.ReadHoldingRegisters(slaveID,startAddress,2);

uintvalue=ModbusUtility.GetUInt32(registers1,registers0);

/www.第4页共6页2011/07/069:

49Loggingexample.NModbususeslog4net.YourapplicationcaneasilybeconfiguredtocapturetheNModbuslogstatements,aswellasyourown.Tryaddingthefollowingxmltoyourapplicationsconfigurationsettings.NModbusConsoleAppenderconsumesonlylogstatementsoflevelINFOandhigherwhileNModbusFileAppenderconsumesalllogstatements(outputtoNModbusLog.txt).Toconfigurelog4netbasedonyourapplicationsconfigurationsettingsaddthefollowingline.log4net.Config.XmlConfigurator.Configure();

Examplelog4netappenderoutputforathemodbusserialRTUmasterwriteregistersexample./ConsoleAppenderINFOModbus.IO.ModbusTransportUnicastMessage-TX:

1,16,0,100,0,3,6,0,1,0,2,0,3INFOModbus.IO.ModbusTransportUnicastMessage-RX:

1,16,0,100,0,3/FileAppender(NModbusLog.txt)INFOModbus.IO.ModbusTransportUnicastMessage-TX:

1,16,0,100,0,3,6,0,1,0,2,0,3DEBUGModbus.IO.ModbusRtuTransportRead-Read4bytes.DEBUGModbus.IO.ModbusRtuTransportReadResponse-Framestart1,16,0,100.DEBUGModbus.IO.ModbusRtuTransportRead-Read4bytes.DEBUGModbus.IO.ModbusRtuTransportReadResponse-Frameend0,3,193,215.INFOModbus.IO.ModbusTransportUnicastMessage-RX:

1,16,0,100,0,3Formoreinformationvisitthelog4netprojectpage.Addyourowncustommessages.Soyourdevicehascustommessages?

Notaproblem,NModbusexposesinterfacesIModbusMessageandIModbusMessageWithDatajustforthatreason.SimplyimplementcustomrequestandresponsemessagesandcalltheappropriateModbusMaster.ExecuteCustomMessageoverload.ExamplefromatestdemonstrationgbothExecuteCustomMessageoverloads:

ushorttestAddress=120;

ushorttestValues=newushort10,20,30,40,50;

CustomReadHoldingRegistersRequestreadRequest=newCustomReadHoldingRegistersRequest(3,SlaveAddress,testAddress,(ushort)testValueCustomWriteMultipleRegistersRequestwriteRequest=newCustomWriteMultipleRegistersRequest(16,SlaveAddress,testAddress,newRegisterCoushortoriginalValues=Master.ExecuteCustomMessage(readRequest);

Master.ExecuteCustomMessage(writeRequest);

ushortnewValues=Master.ExecuteCustomMessage(readRequest);

Assert.AreEqual(testValues,newValues);

writeRequest=newCustomWriteMultipleRegistersRequest(16,SlaveAddress,testAddress,newRegisterCollection(originalValues);

Checkouttheseexamplecustommessageimplementations:

CustomReadHoldingRegistersRequestCustomReadH

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2