My software development team has recently found itself implementing few different communication protocols for our product to achieve integration with various external products.
Although each protocol was different, the implementation process was very similar. Here are some common things that I've seen:
Oct 31, 2016 SCADA/ICS systems use many different protocols to communicate than your standard IT systems. The most widely used and the de facto standard is the modbus protocol. First developed by Modicon (now Schneider Electric) in 1979 as a serial protocol, it has been modified and updated to run over TCP and is often referred to as Modbus TCP.You can see a diagram of the two packet structures.
- The specific communication protocol was always defined above some standard protocol (UDP, TCP/IP, Serial, CAN) and included a set of messages passing from one side to another. The structure of theses messages was predefined and described by the protocol.
- The implementation of this protocol in our product always started from writing C++ header files based on the information provided by the protocol.
- In order to allow early integration cycles and properly test our code we always found ourselves developing simulators that implemented our/their side of the protocol.
![Serial Serial](/uploads/1/2/4/8/124810336/222817081.png)
Here comes the question: do you know any tool that could help us to automate / simplify the processes described above?
Ideally I'd like to have a framework that allows me to do the following:
- Define the protocol in some editor / formal language
- Export the protocol definition to Doc/PDF in a human-readable format
- Export the protocol definition to C++ header files (and probably to other languages)
- Based on the protocol definition automatically (or semi-automatically) produce a simulator of both sides in the communication
I’d be thankful for any help and/or suggestion.
Kara![Serial Protocol Simulator Serial Protocol Simulator](/uploads/1/2/4/8/124810336/330909702.png)
4,1061010 gold badges4444 silver badges5353 bronze badges
LevLev
closed as off-topic by Bill the LizardNov 11 '13 at 2:56
This question appears to be off-topic. The users who voted to close gave this specific reason:
- 'Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.' – Bill the Lizard
1 Answer
Check out Colored Petri Nets; these easily model complex protocols, and there's lot of simulation tools.
Ira BaxterIra Baxter81.9k1010 gold badges136136 silver badges274274 bronze badges