Permalink
Join GitHub today
Ižm looking for free source code (or examples) of ModBus protocol in C or C. I would like to establish a communication between a computer (windows or linux) and a messure equipment, that communicates via ModBus protocol. The physical Layer is RS485.
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up Find file Copy path
1 contributor
usingSystem; |
usingSystem.IO.Ports; |
usingSystem.Runtime.InteropServices; |
usingCommandLine; |
usingModbus.Core; |
usingModbus.Core.Converters; |
usingModbus.Core.DataTypes; |
usingModbus.Core.Streams; |
namespaceModbus.Terminal |
{ |
internalclassProgram |
{ |
[StructLayout(LayoutKind.Sequential, Pack=1)] |
privatestructResponseFunc03 |
{ |
publicbytenumberOfBytes; |
[Endian(Endianness.BigEndian)] |
publicshortvalue; |
[Endian(Endianness.BigEndian)] |
publicushortdotPosition; |
publicshortpadding1; |
publicshortpadding2; |
} |
privatestaticvoidMain(string[] args) |
{ |
varoptions=newPortOptions(); |
if (!Parser.Default.ParseArguments(args, options)) |
return; |
SerialPortserialPort=newSerialPort(options.Com, options.BaudRate); |
if (!serialPort.IsOpen) |
serialPort.Open(); |
varstream=newSerialStream(serialPort); |
stream.ReadTimeout=5000; |
ModbusRtuSessionsession=newModbusRtuSession(newModbusProtocolImpl(stream)); |
RequestFunc03func03=newRequestFunc03(); |
func03.firstRegisterAddress=0; |
func03.numberOfRegisters=4; |
varresponse=session.SendRequest<ResponseFunc03>(1, 3, func03); |
Console.Read(); |
} |
} |
} |
Copy lines Copy permalink