thomas-v2 / S7CommPlusDriver

Development of Communication Driver for Siemens S7-1200/1500 Plcs
GNU Lesser General Public License v3.0
115 stars 33 forks source link

GetVariable Request #42

Open melelise89 opened 5 days ago

melelise89 commented 5 days ago

Hi Thomas, I see in your comments for the GetVariable function code you say / only in old 1200 FW? /. Do you know this to be true? Also, do you know the structure of that request packet? Or have an example? Looking at Wireshark, I can see some differences between GetMultiVariables and GetVariable, it looks like the GetVariable req is expecting a single byte Item address, do you know what this is? I am also unsure if all of the object qualifiers are the same. Any input would be greatly appreciated.

Great work on this driver, thank you for sharing.

thomas-v2 commented 4 days ago

As far as I know, I've only seen this on a communication between the engineering and a S7-1200 with firmware version 1. This is rather old, and I don't have much capture files of this CPU. In the one I have, the CPU protection level is read with this method. It's almost similar to GetMultiVariables where you set the first field with the link-id to a class ID, and then add the IDs you want to read to the addresslist, and increment the item-count. The otherwise number of fields is also the item-count in this specific case. The item-count in GetVariable was always 1 where I've seen. I don't know if they skipped the function in newer firmwares, because you can do the same with GetMultiVariables. Maybe 1200 with firmware 1 had other limitations? I don't know.