I configured a device of type Siemens S7-300 to communicate with a Siemens soft PLC (WinLC, v4.1.0). The communication is working, but the Ignition System Console is showing a lot of errors, more than one per second:
[code]1:38:51 PM S7300Driver[WinLC] Error getting request key.
com.inductiveautomation.xopc.drivers.siemens.util.ReadException: Error reading field “Header Constant” at offset 7 in bytes: [ 03 00 00 07 02 F0 00 ]
Caused by: java.nio.BufferUnderflowException[/code]
I debugged the communication with Wireshark and I found out that after the Ignition driver request, there are two replies from WinLC:
- the first one contains the data [ 03 00 00 07 02 F0 00 ], so TPKT [ 03 00 00 07 ], COTP [ 02 F0 00 ] and an empty PDU (the 00 in COPT, in fact, says that this is not the last PDU, and the 07 on TPKT is the correct data length)
- the second contains the response (TPKT [ 03 00 xx xx ], COPT [ 02 F0 80 ], so this is the last PDU)
It seems to me that the driver does not handle correctly the case of an empty PDU and, maybe, also the case of a PDU split in two packets. Can you check?
I use Ignition v7.6.7.
Can you email your Wireshark log into support?
We don’t have access to or support the soft PLC you’re trying to using, but if I can get any ideas from the Wireshark logs I’ll let you know.
Right, so… it’s that empty PDU that’s causing problems.
The driver isn’t built to handle that and I’ve never seen it until now. This isn’t something I’ll be able to fix very soon.
I am having this same issue. Have there been any updates to the problem?
Sorry, nothing has changed. You can use Kepware or a Siemens OPC server if you need to communicate with a soft PLC right now.
Are there any plans to support this package in the future?
The actionable item here isn’t specifically support for the soft PLCs, rather, it’s either significantly enhancing our S7 protocol implementation or replacing it with an implementation from a 3rd party vendor.
Alright well I have turned off the S7300driver to keep my logs from getting flooded with messages as my tags do appear to be working.
I have several actual S7 300 PLCs though. Is there anyway to just turn off the alarming in the logs for this one WinLC device and not all my S7 300 PLCs?
I have the exact same issue. I have a software PLC I am connected to for ONE tag that I can’t go without, but now my logs in ignition stay flooded with “Error getting request key.”, which makes it difficult to see/troubleshoot any other errors. Is there any way we can just have the driver ignore this one error?
No, you have to turn that whole logger to OFF unfortunately.
I have same the problem "S7300DRIVER “ERROR GETTING REQUEST KEY” ", but the tags are ok, the file of logs its full, and after 20 hours the gateway don’t write/read to the device (WinLC). Is possible that this error blocks the communication after some time?