Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorporation of Modbus/TCP Security #82

Open
wants to merge 119 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
008aaf4
Update README.md
rossmann-engineering Jan 11, 2018
f355dd2
Update README.md
rossmann-engineering Jan 11, 2018
22e233b
Update README.md
rossmann-engineering Jan 11, 2018
43b4a9c
Update README.md
rossmann-engineering Jan 11, 2018
00a102c
Merge branch 'master' of https://github.com/rossmann-engineering/Easy…
rossmann-engineering Jan 15, 2018
ff28895
Changed eventhandlers
rossmann-engineering Mar 27, 2018
efa021a
Event Handler changed
rossmann-engineering Mar 27, 2018
22b5fa6
Version Update 5.0
rossmann-engineering Mar 27, 2018
b03915b
MQTT feature Removed
rossmann-engineering Sep 20, 2018
ac7f111
MQTT removed
rossmann-engineering Sep 20, 2018
c56fa7b
MQTT
rossmann-engineering Sep 20, 2018
3e7052c
V5.5
rossmann-engineering Sep 20, 2018
7f2a4f3
V5.5
rossmann-engineering Sep 20, 2018
2039701
V5.5
rossmann-engineering Sep 20, 2018
d6a3e6d
V5.5
rossmann-engineering Sep 21, 2018
3f5842a
V5.5
rossmann-engineering Sep 21, 2018
160386b
Don't reset countRetries to prevent endless loop
Mar 3, 2020
28318fc
Updated License Information
rossmann-engineering Apr 29, 2020
7afed94
Changed license to MIT
rossmann-engineering Jun 20, 2020
a5aa872
Changed license to MIT
rossmann-engineering Jun 20, 2020
f1290b3
Changed license to MIT
rossmann-engineering Jun 20, 2020
2d82dc5
Merge pull request #40 from irishismyname/master
rossmann-engineering Jun 22, 2020
7e3674c
Write Single Coil issue
rossmann-engineering Jun 22, 2020
39c3034
When creating TCP and UDP servers, you can specify which network inte…
da66en Oct 12, 2020
4e7d1ff
Removed the new delegates
da66en Oct 21, 2020
e836b23
Merge pull request #50 from da66en/feature_server_specify_ip
rossmann-engineering Oct 27, 2020
fb5998b
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
f72fa1a
Merge branch 'master' of https://github.com/rossmann-engineering/Easy…
rossmann-engineering Dec 30, 2020
7ea0185
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
a08eb25
Alpha Version of .NET5 integration and complete redesign
rossmann-engineering Dec 30, 2020
dbb9fd2
Push to Nuget
rossmann-engineering Jan 4, 2021
67d1cba
Pushed to NuGet
rossmann-engineering Jan 4, 2021
314b41c
Fixed absolute path in solution
rossmann-engineering Jan 5, 2021
3d9b2df
Fixed missing dependency for .NET5 test application
rossmann-engineering Jan 5, 2021
dd6d0e9
Moved the basic project - Lot of TODO to be addressed
georgemakrakis Aug 5, 2021
95159bd
Moved the basic project - Lot of TODO to be addressed
georgemakrakis Aug 5, 2021
b465e28
Passwords for certs moved as CMD parameter.
georgemakrakis Aug 9, 2021
dd6ddd8
Passwords for certs moved as CMD parameter.
georgemakrakis Aug 9, 2021
a7533db
Tried to include mutual authentication options - Having problem when …
georgemakrakis Aug 11, 2021
90600dc
Tried to include mutual authentication options - Having problem when …
georgemakrakis Aug 11, 2021
4cfff91
Started adding check for closed connection in client.
georgemakrakis Aug 19, 2021
cf95795
Started adding check for closed connection in client.
georgemakrakis Aug 19, 2021
9501114
Addes connection check for both mutual and non-mutual authentication
georgemakrakis Aug 25, 2021
b4c9cbd
Addes connection check for both mutual and non-mutual authentication
georgemakrakis Aug 25, 2021
d29f682
Added some exception handling to the client's constructor.
georgemakrakis Aug 25, 2021
e8add08
Added some exception handling to the client's constructor.
georgemakrakis Aug 25, 2021
b34ac68
Added some logging to the client
georgemakrakis Aug 25, 2021
317f857
Added some logging to the client
georgemakrakis Aug 25, 2021
acc99eb
Changed default port to 802 by MODBUS/TCP Security Protocol Spec
georgemakrakis Aug 27, 2021
6a454ed
Changed default port to 802 by MODBUS/TCP Security Protocol Spec
georgemakrakis Aug 27, 2021
947bd28
Updated example to verify TLS session resumption using caching.
georgemakrakis Aug 27, 2021
447bb7a
Updated example to verify TLS session resumption using caching.
georgemakrakis Aug 27, 2021
647fc6a
Check and set of roles
georgemakrakis Sep 17, 2021
fe0efc5
Check and set of roles
georgemakrakis Sep 17, 2021
42f87d2
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
00e26b8
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
dc74844
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
a0baa61
Added check for provided Role, by removing ASN.1 special characters
georgemakrakis Oct 1, 2021
fa826e4
Used BouncyCastle to extract RoleOID
georgemakrakis Oct 6, 2021
373694f
Used BouncyCastle to extract RoleOID
georgemakrakis Oct 6, 2021
26558c0
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
20de5f1
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
c5aa67b
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
b3b4a95
Started implementing Role checks for Modbus Functions, generalization…
georgemakrakis Oct 9, 2021
9fcd996
Started creating a decorator pattern to hav AuthZ and non-AuthZ mbaps…
georgemakrakis Oct 13, 2021
4b4eb9d
Started creating a decorator pattern to hav AuthZ and non-AuthZ mbaps…
georgemakrakis Oct 13, 2021
0361866
Stopped Decorator Pattern impl., added extra AuthZ properties and che…
georgemakrakis Oct 15, 2021
0ccc9f3
Stopped Decorator Pattern impl., added extra AuthZ properties and che…
georgemakrakis Oct 15, 2021
aa65d8c
Added new class the extends the previous ModbusSecureServer and inclu…
georgemakrakis Oct 24, 2021
5e4d94a
Added new class the extends the previous ModbusSecureServer and inclu…
georgemakrakis Oct 24, 2021
a76ce64
Started addnig function code specific AuthZ
georgemakrakis Oct 27, 2021
c84dcf4
Started addnig function code specific AuthZ
georgemakrakis Oct 27, 2021
eeec704
Improvement in role initilization and checking part
georgemakrakis Oct 29, 2021
494e06c
Improvement in role initilization and checking part
georgemakrakis Oct 29, 2021
c7daec3
Some logging when non-included role is provided
georgemakrakis Oct 29, 2021
de6770e
Some logging when non-included role is provided
georgemakrakis Oct 29, 2021
fc302b5
List of Function codes can be handled in AuthZ now
georgemakrakis Oct 29, 2021
e999d50
List of Function codes can be handled in AuthZ now
georgemakrakis Oct 29, 2021
522a05a
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
da1f894
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
3f7b50c
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
11320c3
Added some more exception logging to the server side
georgemakrakis Nov 25, 2021
c55185c
In testing, used reflection to test ReadCoils startingAddress is out …
georgemakrakis Feb 4, 2022
564f597
In testing, used reflection to test ReadCoils startingAddress is out …
georgemakrakis Feb 4, 2022
c2aea68
Removed testing project, code cannot be tested without refactoring
georgemakrakis Feb 18, 2022
7ad09af
Removed testing project, code cannot be tested without refactoring
georgemakrakis Feb 18, 2022
86b8623
Tested some more FC AuthZ manually
georgemakrakis Feb 18, 2022
39fd9b2
Tested some more FC AuthZ manually
georgemakrakis Feb 18, 2022
9ffbcc5
Started adding Client Example README information
georgemakrakis Mar 7, 2022
ae195a5
Started adding Client Example README information
georgemakrakis Mar 7, 2022
37c094c
Started adding Server Example README info
georgemakrakis Mar 7, 2022
5643879
Started adding Server Example README info
georgemakrakis Mar 7, 2022
4a71473
Started adding the cert creation process
georgemakrakis Mar 9, 2022
466ae0b
Started adding the cert creation process
georgemakrakis Mar 9, 2022
c59846f
Added certs scirpt and cnf for the server
georgemakrakis Mar 9, 2022
b867713
Added certs scirpt and cnf for the server
georgemakrakis Mar 9, 2022
ad90da0
Added certs script and cnf for the server
georgemakrakis Mar 9, 2022
8c8f64e
Added certs script and cnf for the server
georgemakrakis Mar 9, 2022
2e36d1f
Removed unused key and crt files
georgemakrakis Mar 9, 2022
57baf47
Removed unused key and crt files
georgemakrakis Mar 9, 2022
0980aa5
Removed unused key and crt files
georgemakrakis Mar 9, 2022
8782f15
Removed unused key and crt files
georgemakrakis Mar 9, 2022
7a779b2
Removed unused files from history
georgemakrakis Mar 9, 2022
e06ec37
Merge Fixed
georgemakrakis Mar 9, 2022
5277ccd
Added some more clarifications for certs and AuthZ
georgemakrakis Mar 9, 2022
3a551fd
Put the cert path as CLI option as well.
georgemakrakis Mar 16, 2022
51b774e
Specified some more info about Role.
georgemakrakis Mar 16, 2022
394ce0e
Info on how to import the PFX, CRL etc.
georgemakrakis Mar 16, 2022
2cb8bad
Started Requirements Listing and Implementation Description
georgemakrakis Mar 25, 2022
30872cc
Added information to README Description list
georgemakrakis Mar 25, 2022
7e4bb6d
Added screeshot of packet capture to README
georgemakrakis Mar 30, 2022
ee0aa91
Added screeshot of packet capture to README
georgemakrakis Mar 30, 2022
c3cd0b4
Added Demo Client and Server README links
georgemakrakis Mar 30, 2022
16bb0a5
Added Demo Client and Server README links
georgemakrakis Mar 30, 2022
e2ac32e
Removed RemoteCertificateNameMismatch from Client Cert verification
georgemakrakis Apr 1, 2022
8efb930
Added some TODO items to address
georgemakrakis Apr 1, 2022
7a85217
Minized a code section to "one-liner"
georgemakrakis Apr 6, 2022
555fb2c
Abstracted Modbus Functions with delegated execution
georgemakrakis Apr 6, 2022
4eaeda7
Used the same functionality for 2 Connect() in Client
georgemakrakis Apr 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Started Requirements Listing and Implementation Description
georgemakrakis committed Mar 25, 2022
commit 2cb8badadf103c168956ba0cb9dea9d68f77d989
1 change: 1 addition & 0 deletions EasyModbus_Secure/EasyModbus_Net45_Secure.csproj
Original file line number Diff line number Diff line change
@@ -85,6 +85,7 @@
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="README.MD" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
70 changes: 70 additions & 0 deletions EasyModbus_Secure/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Requirements Listing and Implementation Description

|Requirement| Description |
| ------------- |:-------------:|
| R-01: The TLS Protocol v1.2 as defined in [RFC5246] or newer MUST be used as the secure transport protocol to an mbaps Device.| right foo ||
| R-02: Secure communications to an mbaps Device MUST use Mutual client/server authentication as provided by the TLS Handshake Protocol| right bar ||
| R-03: x.509v3 Certificates as defined in [RFC5280] MUST be used as mbaps device credentials for Identity/Authentication by the TLS protocol.| right baz ||
| R-04: If the Authorization function is enforced it MUST use the role transferred via x.509v3 certificate extensions| right baz ||
| R-05: There MUST be no change to the mbap protocol as a consequence of it being encapsulated by the secure transport| right baz ||
| R-06: mbaps end devices MUST provide mutual authentication when executing the TLS Handshake Protocol to create the TLS session.| right baz ||
| R-07: The TlsServer MUST send the CertificateRequest extension as part of its ServerHello message.| right baz ||
| R-08: The TlsClient MUST send a ClientCertificate message upon receiving a request containing the Client Certificate Request.| right baz ||
| R-09: If the TlsServer does not send a CertificateRequest message, then the TlsClient MUST send a ‘fatal alert’ message to the TlsServer and terminate the connection.| right baz ||
| R-10: If the TlsClient does not send a ClientCertificate message, then the TlsServer MUST send a ‘fatal alert’ message to TlsClient and terminate the connection.| right baz ||
| R-11: Per RFC5246-7.2.2, the TLS connection MUST NOT be resumed after a ‘fatal alert’.| right baz ||
| R-12: Cipher suites used with TLS for mbaps MUST be listed at the IANA Registry found @ http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml .| right baz ||
| R-13: The cipher allowed for TLS with mbaps MUST accommodate the use of x.509v3 certificates.| right baz ||
| R-14: mbaps Devices MUST provide at minimum the following TLS v1.2 cipher suites: <ul><li> TLS_RSA_WITH_AES_128_CBC_SHA256, {0x00, 0x3C}</li> <li>TLS_RSA_WITH_NULL_SHA256, {0x00, 0x3B} </li></ul>| right baz ||
| R-15: The default cipher suite for both mbaps client and server Devices SHOULD be TLS_RSA_WITH_AES_128_CBC_SHA256, {0x00, 0x3C}| right baz ||
| R-66: Client devices with bulk transport encryption and NULL bulk encryption SHOULD always place NULL bulk transport cipher suites last in cipher suite priority| right baz ||
| R-16: A mbaps Server Device SHOULD provide the role-based client AuthZ as described in this section.| right baz ||
| R-17: If a mbaps Server Device provides role-based client AuthZ, it MUST comply with the requirements identified in this section.| right baz ||
| R-18: To provide mbaps role-based client authorization capability the following elements are REQUIRED: <ul><li>x.509v3 client domain certificate ‘Role’ extension </li><li>mbaps server AuthZ algorithm</li><li> mbaps server Roles-to-Rights Rules Database </li></ul>| right baz ||
| R-19: The mbaps client device MUST be provisioned with its x.509v3 domain certificate.| right baz ||
| R-20: The x.509v3 client domain certificate MUST include the Role extension.is section.| right baz ||
| R-21: The Role in the X.509v3 certificate MUST use the Modbus.org PEM OID 1.3.6.1.4.1.50316.802.1| right baz ||
| R-22: The Role in the x.509v3 certificate MUST use ASN1:UTF8String encoding| right baz ||
| R-65: There MUST only be one role defined per certificate. The entire string will be treated as one role.| right baz ||
| R-23: If no Role is specified in the X.509v3 certificate, the mbaps server MUST provide a NULL role to the AuthZ algorithm.| right baz ||
| R-24: The mbaps AuthZ Algorithm MUST be defined and provided by the device vendor.| right baz ||
| R-25: The Roles-to-Rights Rules Database design, both syntax and semantics, MUST be defined by the device vendor.| right baz ||
| R-26: The Roles-to-Rights Rules Database for a particular application MUST be configured according to the device vendor’s design, and provisioned in the mbaps Server by the end user| right baz ||
| R-27: The Roles-to-Rights Rules Database for a particular application MUST be configurable by the end user.| right baz ||
| R-28: The Roles-to-Rights Rules Database for a particular application MUST NOT have hardcoded default roles that are unchangeable| right baz ||
| R-29: The Role values used in the x.509v3 client domain certificates MUST be consistent with the device vendor’s design of the Roles-to-Rights Rules Database.| right baz ||
| R-30: The mbaps server MUST extract the client Role from the received x.509v3 client domain certificate.| right baz ||
| R-31: If the MBAP protocol handler for authorization rejects a request it MUST use the exception code 01 – Illegal function code| right baz ||
| R-32: mbaps devices MUST provide TLS v1.2 or better| right baz ||
| R-33: mbaps Devices MUST conform to the requirements of [RFC5246]| right baz ||
| R-34: mbaps devices MUST NOT negotiate down to TLS v1.1, TLS v1.0, or SSL V3.0.| right baz ||
| R-35: mbaps devices MUST NOT negotiate the use SSL v2.0 and SSL v1.0 in conformance with [RFC6176]| right baz ||
| R-36: mbaps Devices SHOULD provide a counter mode cipher suite. Counter mode cipher suites include <ul><li>TLS_RSA_WITH_AES_128_GCM_SHA256, {0x00, 0x9C} </li><li> TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, {0xC0, 0x2B} </li></ul>| right baz ||
| R-37: mbaps Devices MUST NOT negotiate the cipher suite, TLS_NULL_WITH_NULL_NULL| right baz ||
| R-38: Any cipher suite used by mbaps Devices and negotiated in a TLS Handshake Protocol exchange MUST be listed at IANA’s TLS Cipher Suite Registry in the [TLS-PARAMS].| right baz ||
| R-39: mbaps Devices MUST provide TLS Client-Server key exchange based-on RSA technology as specified by the mandatory cipher suite and described in [RFC5246]| right baz ||
| R-40 mbaps Devices SHOULD provide TLS Client-Server key exchange based on ECC technology.| right baz ||
| R-61 mbaps Devices using ECC technology MUST support at least P-256 NIST curve| right baz ||
| R-62 mbaps Devices using ECC technology MUST support at least the minimum cipher suite of TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256| right baz ||
| R-63 mbaps Devices using ECC technology MUST specify the curves used in their Client Hello using the Supported Elliptic Curves extension in [RFC4492]| right baz ||
| R-64 mbaps Devices using ECC technology MUST specify the point format used in their Client Hello using the Supported Point Format extension in [RFC4492]| right baz ||
| R-41: mbaps Devices MUST support the TLS Client-Server Mutual Authentication Handshake.| right baz ||
| R-42: mbaps Device SHOULD support the TLS Resumed Session Handshake on Client and Server.| right baz ||
| R-43: mbaps Device MAY support the TLS Session Ticket resumption on Client and Server| right baz ||
| R-44: mbaps Servers MUST reject a TLS Handshake where the Client has not responded to a Client Certificate request with certificate.| right baz ||
| R-45: mbaps Devices SHOULD provide x.509v3 Certificates signed by a Certificate Authority.| right baz ||
| R-46: mbaps Devices MUST send the entire certificate chain down to the root CA when sending their certificate| right baz ||
| R-47: x.509v3 Certificates provided by mbaps Devices MUST conform to the requirements of [RFC5280].| right baz ||
| R-48: If an mbaps Device is to be used in a scenario where encryption is required, then a cipher suite with the required encryption indicator MUST be chosen from the list at IANA’s TLS Cipher Suite Registry in the [TLS-PARAMS].| right baz ||
| R-49: If an mbaps Device is to be used in a scenario where encryption is not required, then a cipher suite with a NULL bulk encryption indicator MUST be chosen from the list at IANA’s TLS Cipher Suite Registry in the [TLS-PARAMS]| right baz ||
| R-50: mbaps Devices MUST NOT use the HMAC-MD5 hash algorithm.| right baz ||
| R-51: mbaps Devices MUST NOT use the HMAC-SHA-1 hash algorithm.| right baz ||
| R-52: mbaps Devices MUST provide the HMAC-SHA-256 hash algorithm.| right baz ||
| R-53: mbaps Device MUST NOT use a NULL HMAC hash algorithm.| right baz ||
| R-54: mbaps Devices MUST NOT provide the HMAC-SHA-1 hash algorithm for use in the PRF function to calculate the key block as defined in [RFC5246] sections 5, 6.3 and 8.1.| right baz ||
| R-55: mbaps Devices MUST provide the HMAC-SHA-256 hash algorithm for use in the PRF function to calculate the key block as defined in [RFC5246] sections 5, 6.3 and 8.1.| right baz ||
| R-56: As early as possible in their development cycle, mbaps devices MUST determine that they comply with the import/export conformance policies of their respective countries for the cryptography they provide.| right baz ||
| R-57: mbaps devices MUST provide the Maximum Fragment Length Negotiation Extension as defined in [RFC6066].| right baz ||
| R-58: mbaps devices MUST provide the ability to negotiate a Maximum Fragment Length of 29 (512) bytes as defined in [RFC6066].| right baz ||
| R-59: mbaps devices MUST set the TLS CompressionMethod field of the ClientHello message to the value of NULL.| right baz ||
| R-60: mbaps devices MUST provide the TLS Renegotiation Indication Extension defined in [RFC5746] to provide the secure renegotiation of TLS sessions.| right baz ||
57 changes: 57 additions & 0 deletions EasySecureModbus_Demo/logs/ClientLogs.txt
Original file line number Diff line number Diff line change
@@ -1639,3 +1639,60 @@
15.03.2022 19:25:13.20 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 1
15.03.2022 19:25:13.20 Send ModbusTCP-Data: 00-08-00-00-00-06-01-03-00-00-00-01
15.03.2022 19:25:13.20 Disconnect
20.03.2022 16:36:15.27 Open TCP-Socket, IP-Address: 127.0.0.1, Port: 802
20.03.2022 16:36:15.39 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True True True True True True True True True True
20.03.2022 16:36:15.39 Send ModbusTCP-Data: 00-01-00-00-00-09-01-0F-00-04-00-0A-02-FF-03
20.03.2022 16:36:15.46 FC6 (Write single register to Master device), StartingAddress: 0, Value: 5
20.03.2022 16:36:15.46 Send ModbusTCP-Data: 00-02-00-00-00-06-01-06-00-00-00-05
20.03.2022 16:36:15.46 FC1 (Read Coils from Master device), StartingAddress: 9, Quantity: 2
20.03.2022 16:36:15.46 Send MocbusTCP-Data: 00-03-00-00-00-06-01-01-00-09-00-02
20.03.2022 16:36:15.47 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 10
20.03.2022 16:36:15.47 Send ModbusTCP-Data: 00-04-00-00-00-06-01-03-00-00-00-0A
20.03.2022 16:36:15.47 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True False True True True False True True True True
20.03.2022 16:36:15.47 Send ModbusTCP-Data: 00-05-00-00-00-09-01-0F-00-04-00-0A-02-DD-03
20.03.2022 16:36:15.47 FC1 (Read Coils from Master device), StartingAddress: 0, Quantity: 2
20.03.2022 16:36:15.47 Send MocbusTCP-Data: 00-06-00-00-00-06-01-01-00-00-00-02
20.03.2022 16:36:15.47 FC6 (Write single register to Master device), StartingAddress: 0, Value: 7
20.03.2022 16:36:15.47 Send ModbusTCP-Data: 00-07-00-00-00-06-01-06-00-00-00-07
20.03.2022 16:36:15.47 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 1
20.03.2022 16:36:15.47 Send ModbusTCP-Data: 00-08-00-00-00-06-01-03-00-00-00-01
20.03.2022 16:36:15.47 Disconnect
20.03.2022 16:36:16.97 Destructor called - automatically disconnect
20.03.2022 16:36:34.16 Open TCP-Socket, IP-Address: 127.0.0.1, Port: 802
20.03.2022 16:36:34.25 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True True True True True True True True True True
20.03.2022 16:36:34.25 Send ModbusTCP-Data: 00-01-00-00-00-09-01-0F-00-04-00-0A-02-FF-03
20.03.2022 16:36:34.32 FC6 (Write single register to Master device), StartingAddress: 0, Value: 5
20.03.2022 16:36:34.32 Send ModbusTCP-Data: 00-02-00-00-00-06-01-06-00-00-00-05
20.03.2022 16:36:34.33 FC1 (Read Coils from Master device), StartingAddress: 9, Quantity: 2
20.03.2022 16:36:34.33 Send MocbusTCP-Data: 00-03-00-00-00-06-01-01-00-09-00-02
20.03.2022 16:36:34.33 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 10
20.03.2022 16:36:34.33 Send ModbusTCP-Data: 00-04-00-00-00-06-01-03-00-00-00-0A
20.03.2022 16:36:34.33 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True False True True True False True True True True
20.03.2022 16:36:34.33 Send ModbusTCP-Data: 00-05-00-00-00-09-01-0F-00-04-00-0A-02-DD-03
20.03.2022 16:36:34.33 FC1 (Read Coils from Master device), StartingAddress: 0, Quantity: 2
20.03.2022 16:36:34.33 Send MocbusTCP-Data: 00-06-00-00-00-06-01-01-00-00-00-02
20.03.2022 16:36:34.33 FC6 (Write single register to Master device), StartingAddress: 0, Value: 7
20.03.2022 16:36:34.33 Send ModbusTCP-Data: 00-07-00-00-00-06-01-06-00-00-00-07
20.03.2022 16:36:34.34 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 1
20.03.2022 16:36:34.34 Send ModbusTCP-Data: 00-08-00-00-00-06-01-03-00-00-00-01
20.03.2022 16:36:34.34 Disconnect
20.03.2022 16:37:09.65 Destructor called - automatically disconnect
23.03.2022 18:52:57.85 Open TCP-Socket, IP-Address: 127.0.0.1, Port: 802
23.03.2022 18:52:57.95 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True True True True True True True True True True
23.03.2022 18:52:57.95 Send ModbusTCP-Data: 00-01-00-00-00-09-01-0F-00-04-00-0A-02-FF-03
23.03.2022 18:52:58.11 FC6 (Write single register to Master device), StartingAddress: 0, Value: 5
23.03.2022 18:52:58.11 Send ModbusTCP-Data: 00-02-00-00-00-06-01-06-00-00-00-05
23.03.2022 18:52:58.11 FC1 (Read Coils from Master device), StartingAddress: 9, Quantity: 2
23.03.2022 18:52:58.11 Send MocbusTCP-Data: 00-03-00-00-00-06-01-01-00-09-00-02
23.03.2022 18:52:58.12 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 10
23.03.2022 18:52:58.12 Send ModbusTCP-Data: 00-04-00-00-00-06-01-03-00-00-00-0A
23.03.2022 18:52:58.12 FC15 (Write multiple coils to Master device), StartingAddress: 4, Values: True False True True True False True True True True
23.03.2022 18:52:58.12 Send ModbusTCP-Data: 00-05-00-00-00-09-01-0F-00-04-00-0A-02-DD-03
23.03.2022 18:52:58.12 FC1 (Read Coils from Master device), StartingAddress: 0, Quantity: 2
23.03.2022 18:52:58.12 Send MocbusTCP-Data: 00-06-00-00-00-06-01-01-00-00-00-02
23.03.2022 18:52:58.12 FC6 (Write single register to Master device), StartingAddress: 0, Value: 7
23.03.2022 18:52:58.12 Send ModbusTCP-Data: 00-07-00-00-00-06-01-06-00-00-00-07
23.03.2022 18:52:58.12 FC3 (Read Holding Registers from Master device), StartingAddress: 0, Quantity: 1
23.03.2022 18:52:58.12 Send ModbusTCP-Data: 00-08-00-00-00-06-01-03-00-00-00-01
23.03.2022 18:52:58.12 Disconnect
23.03.2022 18:52:59.65 Destructor called - automatically disconnect
52 changes: 52 additions & 0 deletions EasySecureModbus_Demo_Server/logs/ServerLogs.txt
Original file line number Diff line number Diff line change
@@ -1073,3 +1073,55 @@
15.03.2022 19:25:13.20 Send Data: 00-07-00-00-00-06-01-06-00-00-00-07
15.03.2022 19:25:13.20 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
15.03.2022 19:25:13.20 Send Data: 00-08-00-00-00-05-01-03-02-00-07
20.03.2022 16:36:05.79 EasyModbus Server listing for incomming data at Port 802, local IP 0.0.0.0
20.03.2022 16:36:15.45 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.46 Send Data: 00-01-00-00-00-06-01-0F-00-04-00-0A
20.03.2022 16:36:15.46 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.46 Send Data: 00-02-00-00-00-06-01-06-00-00-00-05
20.03.2022 16:36:15.46 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.46 Send Data: 00-03-00-00-00-04-01-01-01-03
20.03.2022 16:36:15.47 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Send Data: 00-04-00-00-00-17-01-03-14-00-05-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Send Data: 00-05-00-00-00-06-01-0F-00-04-00-0A
20.03.2022 16:36:15.47 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Send Data: 00-06-00-00-00-04-01-01-01-00
20.03.2022 16:36:15.47 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Send Data: 00-07-00-00-00-06-01-06-00-00-00-07
20.03.2022 16:36:15.47 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:15.47 Send Data: 00-08-00-00-00-05-01-03-02-00-07
20.03.2022 16:36:31.05 EasyModbus Server listing for incomming data at Port 802, local IP 0.0.0.0
20.03.2022 16:36:34.32 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.32 Send Data: 00-01-00-00-00-06-01-0F-00-04-00-0A
20.03.2022 16:36:34.32 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.32 Send Data: 00-02-00-00-00-06-01-06-00-00-00-05
20.03.2022 16:36:34.33 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.33 Send Data: 00-03-00-00-00-04-01-01-01-03
20.03.2022 16:36:34.33 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.33 Send Data: 00-04-00-00-00-17-01-03-14-00-05-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.33 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.33 Send Data: 00-05-00-00-00-06-01-0F-00-04-00-0A
20.03.2022 16:36:34.33 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.33 Send Data: 00-06-00-00-00-04-01-01-01-00
20.03.2022 16:36:34.33 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.34 Send Data: 00-07-00-00-00-06-01-06-00-00-00-07
20.03.2022 16:36:34.34 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
20.03.2022 16:36:34.34 Send Data: 00-08-00-00-00-05-01-03-02-00-07
20.03.2022 16:37:10.30 Exception occurred: Not listening. You must call the Start() method before calling this method.
23.03.2022 18:52:49.10 EasyModbus Server listing for incomming data at Port 802, local IP 0.0.0.0
23.03.2022 18:52:58.10 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.11 Send Data: 00-01-00-00-00-06-01-0F-00-04-00-0A
23.03.2022 18:52:58.11 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.11 Send Data: 00-02-00-00-00-06-01-06-00-00-00-05
23.03.2022 18:52:58.11 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-03-00-00-00-04-01-01-01-03
23.03.2022 18:52:58.12 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-04-00-00-00-17-01-03-14-00-05-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-05-00-00-00-06-01-0F-00-04-00-0A
23.03.2022 18:52:58.12 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-06-00-00-00-04-01-01-01-00
23.03.2022 18:52:58.12 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-07-00-00-00-06-01-06-00-00-00-07
23.03.2022 18:52:58.12 Received Data: 00-00-00-00-00-00-00-00-00-00-00-00
23.03.2022 18:52:58.12 Send Data: 00-08-00-00-00-05-01-03-02-00-07