12/15/2019 5:16 PM | |
Joined: 9/27/2006 Last visit: 9/19/2024 Posts: 12282 Rating: (2684) |
Hello HBCM; I can suggest this document explaining peripheral addressing, as opposed to using the process image of the CPU: Where and when do you need peripheral addressing? https://support.industry.siemens.com/cs/us/en/view/18325417 The contents of the process image (PII and PIQ) do not reflect the actual values of the inputs/outputs, but the values at the time the process image was updated. If more recent values are required for individual processes, you also have the option of direct peripheral addressing. If you understand the pronciple of the PLC scan, then you will know that the process image (input image table, output image table) is refreshed once per scan during execution of the program. Input and output values in the process image tables are maintained until they are refreshed in the next scan, at the beginning of the scan for inputs, at the exit of the scan for outputs. You address the inputs form the image table as Ix.y, Iwxx, etc... You address the outputs from the image table as Qx.y, QWyy, etc... Peripheral addressing accesses the individual registers as immediate reads (inputs) and writes (outputs). so the value is accesses at the point in your program where you need them, which is why they are basically used for analog values, or communication issues.You use the prefix "P" to signal you want to use a peripheral address, for example PIW256 or PQW 278, in Simatic Manager; in TIA Portal, you must use instead the suffix ":P", as in IW20:P, or QB256:P.. I cannot tell you what kind of performance boost you could get by using peripheral addressing, I do not believe there is such a metric in Siemens documentation. Fell free to experiment and inform us if the extra work is worth the effort. Hope this helps, Daniel Chartier |
12/16/2019 8:04 PM | |
Joined: 2/6/2015 Last visit: 2/16/2024 Posts: 1 Rating: (1) |
You can declare a UDT for your inputs which consists of just 'mydata array[0.. 9] of BYTE' and then go to the tag table create an entry with a name 'myDataIn', the address '%I314' and your udt type. The same for you output. Hopefully you can then use it as a Byte array :-) See also the answer to this question: https://support.industry.siemens.com/tf/ww/en/posts/array-of-inputs/147945 Michael |
Last edited by: AutoGen_560443 at: 12/16/2019 20:54:59 |
|
This contribution was helpful to1 thankful Users |
Follow us on