This commit is contained in:
Jonny007-MKD 2014-05-15 15:05:20 +00:00
parent 74707e39ea
commit 68e41595cb
7 changed files with 257 additions and 241 deletions

View file

@ -1,196 +0,0 @@
/*@!Encoding:1252*/
includes
{
#include "include\ModbusTcpClientCommon.cin"
}
variables
{
msTimer muster, clock;
byte gX[2] = {1, 0};
}
// Get information of local network interface such like ip address
on preStart
{
writeClear(0);
setStartdelay(10);
}
on start
{
long fehler;
ModbusInit("192.168.1.3", 502);
}
// Modbus events ----------------------------------------------------------------------
void OnModbusReadBitsFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusReadRegistersFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusWriteBitFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusWriteRegisterFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusWriteBitsFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusWriteRegistersFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
}
void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbr, byte bitStatus[], word numBits)
{
char str[20*2];
hbin_to_strhex(mbr.Data, str);
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
}
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveRegisters: Received %d registers (%d bytes): %X %X %X %X...", mbr.ByteCount, mbr.Data[0], mbr.Data[1], mbr.Data[2], mbr.Data[3]);
}
void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
}
void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
}
void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
}
void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
}
// Key events -------------------------------------------------------------------------
on key 'r'
{
ModbusReadBits(0, 512);
}
on key 'a'
{
byte x[16] = {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0};
ModbusWriteBitsB(0, 16, x);
}
on key 's'
{
byte x[16] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1};
ModbusWriteBitsB(0, 16, x);
}
on key 'Y'
{
ModbusWriteBit(0, 0);
}
on key 'y'
{
ModbusWriteBit(0, 1);
}
on key 'X'
{
ModbusWriteBit(1, 0);
}
on key 'x'
{
ModbusWriteBit(1, 1);
}
on key 'C'
{
ModbusWriteBit(2, 0);
}
on key 'c'
{
ModbusWriteBit(2, 1);
}
on key 'V'
{
ModbusWriteBit(3, 0);
}
on key 'v'
{
ModbusWriteBit(3, 1);
}
on key '+'
{
byte x[2] = {0xFF, 0xFF};
ModbusWriteBits(0, 16, x);
}
on key '-'
{
byte x[2] = {0x00, 0x00};
ModbusWriteBits(0, 16, x);
}
on key 'z'
{
setTimerCyclic(muster, 100);
}
on key 'Z'
{
cancelTimer(muster);
}
on timer muster
{
if (gX[0] != 0)
{
if (gX[0] == 0x80)
{
gX[0] = 0x00;
gX[1] = 0x01;
}
else
gX[0] <<= 1;
}
else
{
if (gX[1] == 0x80)
{
gX[0] = 0x01;
gX[1] = 0x00;
}
else
gX[1] <<= 1;
}
ModbusWriteBits(0, 16, gX);
//ModbusReadBits(0, 512);
}
on key 't'
{
setTimerCyclic(clock, 100);
}
on key 'T'
{
clock.Cancel();
}
on timer clock
{
byte s, x[2];
s = (timeNow() / 100000) % 30;
x[0] = (s & 0x01) | (s & 0x02) | ((s & 0x04) << 1) | ((s & 0x08) << 4);
x[1] = (s & 0x10) << 3;
ModbusWriteBits(0, 16, x);
}

View file

@ -21,8 +21,6 @@ variables
on preStart
{
writeClear(0);
sysDefineNamespace("%NETWORK_NAME%::%BASE_FILE_NAME%::Info");
sysDefineNamespace("%NETWORK_NAME%::%BASE_FILE_NAME%::Data");
setStartdelay(10);
}
@ -68,24 +66,24 @@ void OnModbusReadBitsSuccess(struct ModbusResReceiveBits mbr, byte bitStatus[],
char str[20*2];
hbin_to_strhex(mbr.Data, str);
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusReceiveBits: Received %d bits (in %d bytes): %s", numBits, mbr.ByteCount, str);
}
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word numRegs)
{
char str[20*5];
long fehler;
dbin_to_strhex(mbr.Data, str);
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusReceiveRegisters: Received %d bytes: %s", mbr.ByteCount, str);
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusReceiveRegisters: Received %d bytes: %s", mbr.ByteCount, str);
switch (gState)
{
case ConfWago1:
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "SerialCode", mbr.Data[0]);
//@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::SerialCode = mbr.Data[0];
gState = ConfWago2;
ModbusReadRegisters(0x2012, 1);
break;
case ConfWago2:
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "DeviceCode", mbr.Data[0]);
//@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::DeviceCode = mbr.Data[0];
gState = ConfWago3;
ModbusReadRegisters(0x2030, 1);
break;
@ -97,19 +95,19 @@ void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbr, word num
}
void OnModbusWriteBitSuccess(struct ModbusResConfirmSingle mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmBit: Set bit 0x%X to %d", mbc.Address, (mbc.Value > 0 ? 1 : 0));
}
void OnModbusWriteRegisterSuccess(struct ModbusResConfirmSingle mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmRegister: Set register 0x%X to %d", mbc.Address, mbc.Value);
}
void OnModbusWriteBitsSuccess(struct ModbusResConfirmMultiple mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmBits: Set %d bits beginning with 0x%X", mbc.Count, mbc.Address);
}
void OnModbusWriteRegistersSuccess(struct ModbusResConfirmMultiple mbc)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
writeLineEx(0, 1, "<%NODE_NAME%> OnModbusConfirmRegisters: Set %d registers beginning with 0x%X", mbc.Count, mbc.Address);
}
void OnModbusWriteMasksSuccess(struct ModbusResConfirmMasks mbc)
{

View file

@ -31,8 +31,8 @@ variables
void ModbusInit(char Remote_IP[], word Remote_Port)
{
sysDefineVariableString("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "IP", Remote_IP);
sysDefineVariableInt("%NETWORK_NAME%::%BASE_FILE_NAME%::Info", "Port", Remote_Port);
sysDefineVariableString("%NETWORK_NAME%::%NODE_NAME%::Info", "IP", Remote_IP);
sysDefineVariableInt("%NETWORK_NAME%::%NODE_NAME%::Info", "Port", Remote_Port);
ModbusConnectTo(Remote_IP, Remote_Port);
}
@ -455,7 +455,7 @@ void ModbusWriteBitsB(word address, word count, byte values[])
hbin_to_strhex(values, str1);
bin_to_strhex(buffer, str2);
writeLineEx(0, 1, "<%BASE_FILE_NAME%> ModbusWriteBitsB: Encoded %s to %s", str1, str2);
writeLineEx(0, 1, "<%NODE_NAME%> ModbusWriteBitsB: Encoded %s to %s", str1, str2);
ModbusWriteBits(address, count, buffer);
}
@ -767,7 +767,7 @@ void OnModbusReceive(dword socket, long result, dword address, dword port, byte
if (size == 0)
{
// Size of zero indicates that the socket was closed by the communication peer.
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpReceive: Socket closed by peer");
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpReceive: Socket closed by peer");
gSocket.Close();
gSocketState = CLOSED;
}
@ -781,7 +781,7 @@ void OnModbusReceive(dword socket, long result, dword address, dword port, byte
{
gIpLastErr = gSocket.GetLastSocketError();
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
gSocket.Close();
gSocketState = CLOSED;
}
@ -832,14 +832,14 @@ void OnModbusReceive2OnePacket(byte buffer[], int offset, struct ModbusApHeader
// We cannot check this properly anymore. We have to trust the TCP/UDP stack and the sender... *sigh*
if (elCount(buffer) < offset + length) // TCP packet not as large enough
{
writeLineEx(0, 3, "<%BASE_FILE_NAME%> OnModbusReceive Error: Modbus packet did not fit into Buffer: buffer length = %d, packet length = %d, offset = %d", elCount(buffer), __offset_of(struct ModbusApHeader, UnitID) + mbap.Length, offset);
writeLineEx(0, 3, "<%NODE_NAME%> OnModbusReceive Error: Modbus packet did not fit into Buffer: buffer length = %d, packet length = %d, offset = %d", elCount(buffer), __offset_of(struct ModbusApHeader, UnitID) + mbap.Length, offset);
// I REALLY don't want to assemble the two package fragments.
runError(1001,1);
return;
}
if (mbap.Protocol != 0) // Protocol is not Modbus (0x0000). Wayne.
{
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnModbusReceive Error: Tcp packet is no Modbus packet: Protocol = %d", mbap.Protocol);
writeLineEx(0, 2, "<%NODE_NAME%> OnModbusReceive Error: Tcp packet is no Modbus packet: Protocol = %d", mbap.Protocol);
return;
}
// MBAP Header is OK :) Go on
@ -896,28 +896,28 @@ void OnModbusReceive2Exceptions(byte exCode, struct ModbusApHeader mbap)
switch(exCode) // Let's have a look at the reason
{
case 0x01: // Illegal function code: Implementation failure!
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal function code (0x01). The function code %d is unknown by the server.", mbap.FuncCode & 0x0F);
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal function code (0x01). The function code %d is unknown by the server.", mbap.FuncCode & 0x0F);
break;
case 0x02: // Illegal data address: Configuration failure!
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal data address (0x02). Please check your configuration!");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal data address (0x02). Please check your configuration!");
break;
case 0x03: // Illegal data value: Depends.
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Illegal data value (0x03).");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Illegal data value (0x03).");
break;
case 0x04: // Server failure: We can't do anything about that, can we?
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Server failure (0x04). The server failed during execution.");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Server failure (0x04). The server failed during execution.");
break;
case 0x05: // Acknowledge: That's ok.
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Exception: Acknowledge (0x05). The server simply needs more time to generate the response.");
writeLineEx(0, 1, "<%NODE_NAME%> Exception: Acknowledge (0x05). The server simply needs more time to generate the response.");
break;
case 0x06: // Server busy: We should resend the request.
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Server busy (0x06). The request could not be accepted.");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Server busy (0x06). The request could not be accepted.");
break;
case 0x0A: // Gateway problem: We don't have gateways :)
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Gateway problem (0x0A). Gateway paths not available.");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Gateway problem (0x0A). Gateway paths not available.");
break;
case 0x0B: // Gateway problem: We don't have gateways :)
writeLineEx(0, 3, "<%BASE_FILE_NAME%> Exception: Gateway problem (0x0B). The targeted device failed to respond.");
writeLineEx(0, 3, "<%NODE_NAME%> Exception: Gateway problem (0x0B). The targeted device failed to respond.");
break;
}

View file

@ -34,19 +34,19 @@ word TcpOpenSocket()
if (gSocket.GetLastSocketError() != 0)
{
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Tcp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Tcp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
}
}
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
if (gSocket.GetLastSocketError() != 0)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Tcp socket!");
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Tcp socket!");
return gSocket.GetLastSocketError();
}
else
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Tcp socket opened on %s:%d.", Local_IP, localPort);
writeLineEx(0, 1, "<%NODE_NAME%> Tcp socket opened on %s:%d.", Local_IP, localPort);
}
return 0;
@ -60,7 +60,7 @@ word TcpConnectTo(char Remote_IP[], word remotePort)
remoteIp = IpGetAddressAsNumber(Remote_IP);
if (remoteIp == INVALID_IP)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: invalid server Ip address!");
writeLineEx(0, 1, "<%NODE_NAME%> Error: invalid server Ip address!");
return 1;
}
@ -91,7 +91,7 @@ word TcpConnectTo(dword remoteIp, word remotePort)
if (fehler != WSAEWOULDBLOCK) // OnTcpConnect will be called otherwise
{
write("<%BASE_FILE_NAME%> No Port-Connection: %d", fehler);
write("<%NODE_NAME%> No Port-Connection: %d", fehler);
gSocketState = ERROR;
return fehler;
}
@ -99,7 +99,7 @@ word TcpConnectTo(dword remoteIp, word remotePort)
}
else
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Successfully connected to server");
writeLineEx(0, 1, "<%NODE_NAME%> Successfully connected to server");
gSocketState = OK;
return 0;
}
@ -110,13 +110,13 @@ void OnTcpConnect(dword socket, long result)
if (result != 0)
{
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> OnTcpConnect error (%d): %s", gSocket.GetLastSocketError(), gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> OnTcpConnect error (%d): %s", gSocket.GetLastSocketError(), gIpLastErrStr);
gSocketState = ERROR;
return;
}
else
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Successfully connected to server");
writeLineEx(0, 1, "<%NODE_NAME%> Successfully connected to server");
gSocketState = OK;
}
}
@ -140,7 +140,7 @@ void TcpRecv()
if (gIpLastErr != WSA_IO_PENDING) // Calling OnTcpReceive otherwise
{
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> TcpReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
gSocket.Close();
gSocketState = CLOSED;
}
@ -159,18 +159,18 @@ void TcpSnd(byte buffer[], word length)
TcpConnectTo(gRemoteIP, gRemotePort);
if (gSocketState != OK)
{
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd: Reconnecting failed!");
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd: Reconnecting failed!");
return;
}
case OK:
break;
default:
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd: Socket status is not OK!");
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd: Socket status is not OK!");
return;
}
//bin_to_strhex(buffer, str);
//writeLineEx(0, 1, "<%BASE_FILE_NAME%> TcpSnd: %s (Länge: %d)", str, length);
//writeLineEx(0, 1, "<%NODE_NAME%> TcpSnd: %s (Länge: %d)", str, length);
if (gSocket.Send(buffer, length) != 0)
{
@ -179,7 +179,7 @@ void TcpSnd(byte buffer[], word length)
if (gIpLastErr != WSA_IO_PENDING)
{
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> TcpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> TcpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
gSocket.Close();
gSocketState = CLOSED;
}

View file

@ -34,19 +34,19 @@ word UdpOpenSocket()
if (gSocket.GetLastSocketError() != 0)
{
gSocket.GetLastSocketErrorAsString(errorText, elcount(errorText));
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Udp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Udp socket on %s:%d, %s (%d)!", Local_IP, localPort, errorText, gSocket.GetLastSocketError());
}
}
while (gSocket.GetLastSocketError() != 0 && i++ < 9);
if (gSocket.GetLastSocketError() != 0)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: could not open Udp socket!");
writeLineEx(0, 1, "<%NODE_NAME%> Error: could not open Udp socket!");
return gSocket.GetLastSocketError();
}
else
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Udp socket opened on %s:%d.", Local_IP, localPort);
writeLineEx(0, 1, "<%NODE_NAME%> Udp socket opened on %s:%d.", Local_IP, localPort);
}
return 0;
@ -60,7 +60,7 @@ word UdpConnectTo(char Remote_IP[], word remotePort)
remoteIp = IpGetAddressAsNumber(Remote_IP);
if (remoteIp == INVALID_IP)
{
writeLineEx(0, 1, "<%BASE_FILE_NAME%> Error: invalid server Ip address!");
writeLineEx(0, 1, "<%NODE_NAME%> Error: invalid server Ip address!");
return 1;
}
@ -105,7 +105,7 @@ void UdpRecv()
if (gIpLastErr != WSA_IO_PENDING) // Calling OnUdpReceive otherwise
{
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> UdpRecv Error (%d): %s", gIpLastErr, gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> UdpRecv Error (%d): %s", gIpLastErr, gIpLastErrStr);
gSocket.Close();
gSocketState = CLOSED;
}
@ -135,7 +135,7 @@ void UdpSnd(byte buffer[], word length)
}
//bin_to_strhex(buffer, str);
//writeLineEx(0, 1, "<%BASE_FILE_NAME%> UdpSnd: %s (Länge: %d)", str, length);
//writeLineEx(0, 1, "<%NODE_NAME%> UdpSnd: %s (Länge: %d)", str, length);
if (gSocket.SendTo(gRemoteIP, gRemotePort, buffer, length) != 0)
{
@ -144,7 +144,7 @@ void UdpSnd(byte buffer[], word length)
if (gIpLastErr != WSA_IO_PENDING)
{
gSocket.GetLastSocketErrorAsString(gIpLastErrStr, elcount(gIpLastErrStr));
writeLineEx(0, 2, "<%BASE_FILE_NAME%> UdpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
writeLineEx(0, 2, "<%NODE_NAME%> UdpSnd error (%d): %s", gIpLastErr, gIpLastErrStr);
gSocket.Close();
gSocketState = CLOSED;
}

49
Modbus/modbus.dbc Normal file
View file

@ -0,0 +1,49 @@
VERSION ""
NS_ :
NS_DESC_
CM_
BA_DEF_
BA_
VAL_
CAT_DEF_
CAT_
FILTER
BA_DEF_DEF_
EV_DATA_
ENVVAR_DATA_
SGTYPE_
SGTYPE_VAL_
BA_DEF_SGTYPE_
BA_SGTYPE_
SIG_TYPE_REF_
VAL_TABLE_
SIG_GROUP_
SIG_VALTYPE_
SIGTYPE_VALTYPE_
BO_TX_BU_
BA_DEF_REL_
BA_REL_
BA_DEF_DEF_REL_
BU_SG_REL_
BU_EV_REL_
BU_BO_REL_
SG_MUL_VAL_
BS_:
BU_: Wago_3
EV_ Wago_3_IP: 0 [0|0] "" 0 1 DUMMY_NODE_VECTOR8001 Vector__XXX;
BA_DEF_ "DBName" STRING ;
BA_DEF_ "BusType" STRING ;
BA_DEF_DEF_ "DBName" "";
BA_DEF_DEF_ "BusType" "Ethernet";
BA_ "BusType" "Ethernet";
BA_ "DBName" "modbus";

165
Modbus/modbus.ini Normal file
View file

@ -0,0 +1,165 @@
[View_Vehicles]
HIDDEN=
ORDER=0,1,
DEFINITIONS=
COLUMNWIDTHS=125,150,
[View_Vehicle]
HIDDEN=
ORDER=0,1,
DEFINITIONS=
COLUMNWIDTHS=125,125,
[View_VehicleNetworks]
HIDDEN=3,5,
ORDER=0,1,2,3,4,
DEFINITIONS=1,2,
COLUMNWIDTHS=125,125,100,100,150,100,100,
[View_VehicleNetwork]
HIDDEN=
ORDER=0,1,2,3,4,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,125,150,
[View_VehicleNetworkTxMessages]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,
DEFINITIONS=
COLUMNWIDTHS=125,125,55,100,50,100,100,100,150,
[View_VehicleNetworkSignals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,100,50,100,100,100,50,50,50,50,100,100,150,
[View_VehicleControlUnit]
HIDDEN=
ORDER=0,1,2,3,4,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,125,150,
[View_VehicleGateways]
HIDDEN=
ORDER=0,1,2,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,
[View_VehicleGatewaySignals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,
DEFINITIONS=
COLUMNWIDTHS=125,125,125,125,125,125,125,
[View_Networks]
HIDDEN=2,4,
ORDER=0,1,2,3,
DEFINITIONS=1,2,
COLUMNWIDTHS=125,100,100,150,100,100,
[View_Network]
HIDDEN=
ORDER=0,1,2,3,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,150,
[View_NetworkTxMessages]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,
DEFINITIONS=
COLUMNWIDTHS=125,125,55,100,50,100,100,100,150,
[View_NetworkTxSignals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,100,50,100,100,100,50,50,50,50,100,100,150,
[View_NetworkNodeGroup]
HIDDEN=
ORDER=0,1,2,
DEFINITIONS=
COLUMNWIDTHS=125,100,150,
[View_Ecus]
HIDDEN=
ORDER=0,1,
DEFINITIONS=
COLUMNWIDTHS=125,150,
[View_Ecu]
HIDDEN=
ORDER=0,1,2,3,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,150,
[View_EnvVars]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,
DEFINITIONS=
COLUMNWIDTHS=125,100,100,50,50,50,50,100,100,150,
[View_EnvVar]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,100,50,50,50,50,100,100,150,
[View_NodeGroups]
HIDDEN=
ORDER=0,1,
DEFINITIONS=
COLUMNWIDTHS=125,150,
[View_NodeGroup]
HIDDEN=
ORDER=0,1,2,3,
DEFINITIONS=
COLUMNWIDTHS=125,125,55,150,
[View_Nodes]
HIDDEN=
ORDER=0,1,2,
DEFINITIONS=
COLUMNWIDTHS=125,100,150,
[View_Node]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
[View_NodeTxMessages]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,
DEFINITIONS=
COLUMNWIDTHS=125,125,55,100,50,100,100,150,
[View_NodeTxMsg]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
[View_NodeTxSignals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
[View_NodeRxSignals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
[View_NodeTxSigs]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,
DEFINITIONS=
COLUMNWIDTHS=125,125,50,100,100,100,50,50,50,50,100,100,150,
[View_NodeRxSigs]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,
DEFINITIONS=
COLUMNWIDTHS=125,125,50,100,100,100,50,50,50,50,100,100,150,
[View_Messages]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,
DEFINITIONS=
COLUMNWIDTHS=125,55,100,50,100,100,100,150,
[View_Message]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,
DEFINITIONS=
COLUMNWIDTHS=125,125,100,50,50,100,100,100,50,50,50,50,100,100,150,
[View_Signals]
HIDDEN=
ORDER=0,1,2,3,4,5,6,7,8,9,10,11,
DEFINITIONS=
COLUMNWIDTHS=125,50,100,100,100,50,50,50,50,100,100,150,
[View_ValueTables]
HIDDEN=
ORDER=0,1,
DEFINITIONS=
COLUMNWIDTHS=125,150,
[View_AttrDefs]
HIDDEN=6,
ORDER=0,1,2,3,4,5,
DEFINITIONS=
COLUMNWIDTHS=125,100,100,50,50,100,150,