First off, welcome and thanks for taking the time to contribute!
We appreciate that you are developing something complex, difficult, important, commercially sensitive, and don't always have a complete understanding of the problem.
However, you are in the best position to describe your situation, so when creating an issue, provide as much context and detail as possible. Help us help you!
- Review the documentation, examples, previous Github issues and previous Google Groups discussions for similar questions.
- What are you expecting to occur, or what do you need to occur?
- Can you provide evidence of what is actually occuring instead of your expectation?
- Supply a minimal reproducible example.
- What else have you tried? And why did it not work?
- Is there anything related to this that does work?
- Supply libplctag debug logs.
- Are external conditions relevant (e.g. network latency)? Document these.
As the conversation progresses, you may be asked to try various things. Keeping track of what is being tested can be very difficult, so please post details of the experiment along with the results - i.e. provide any logs, screenshots, source code, and any other relevant external conditions - regardless of whether they have changed or not.
- The libplctag core releases contain a number of tools useful during debugging (tag_rw and list_tags in particular).
- Read the libplctag wiki.
- Use a simulator or a PLC Fake to eliminate calls to libplctag and/or the hardware.
- ab_server
- Modbus server docker image
- Develop your own PLC Fake
- Enable and read the libplctag debug logs.
We recognize that libplctag.NET is primarily used in commercial contexts, where copyright and legal concerns carry significant weight. To simplify adoption, we require that all contributions are licensed using the same license (see LICENSE, you will become one of the collective "authors of libplctag.NET".