8/26/2009 12:05 PM | |
Joined: 1/17/2007 Last visit: 8/21/2024 Posts: 1545 Rating: (537) |
PIP stands for Process Image Partition. The PIP performs the I/O update for you. When you define an I/O point in the hardware configuration, you are given the opportunity to specify which PIP will perform the I/O update for you. You then link the PIP to a particular cyclic OB and the I/O will be updated at the cyclic update rate of that OB. Thus, whenever your code (CFC etc.) runs in the cyclic OB, the I/O will have already been updated for you (they are effectively running in sync). See the following document for information on PIP (Section 3.1.3, Page 76). http://support.automation.siemens.com/WW/view/en/35016996 |
Programming today is the race between software engineers building bigger and better idiot proof programs, and the universe producing bigger and better idiots. |
|
8/26/2009 6:56 PM | |
Posts: 138 Rating: (0) |
Hey i am using s7 300 CPU 312. I m getting PIP option deactivated. What does it mean. Either my CPU doesn't support PIP's or there is a way of activating it. |
8/26/2009 7:01 PM | |
Posts: 138 Rating: (0) |
Moreover if my CPU doens't have this feature than suggest me s7300 cpu that supports PIP |
8/28/2009 2:04 AM | |
Joined: 10/7/2005 Last visit: 9/24/2024 Posts: 3022 Rating: (1054) |
Hello Waqas this will not help you as scan monitoring time is simply the maximum allowable time for a scan. If exceeded a call to to OB80 will be triggered (or CPU STOP if OB80 does not exist),followed by a CPU STOP if OB80 gets called a second time in the same cycle.
Here are some suggestions of how you can achieve that. To start with, the lack of PIP support is no big drama, all it does is to "refresh" a part of the process image upon call of the interrupt OB. You can do so yourself by simply doing a so called "Periphery access" which will also work for outputs. This allows you to write a program that "gets" the latest inpputs, reacts to them andimmediately updatesany associated outputs, for example: [code]L PIW 60 // "grab" latest status of Inputsdirectly from Input card T IW 60 // update coressponding PII (Process Image Inputs, "normally refreshed by operating system before OB1 call), alternatively use a MW or DBWif you wish A I 60.0 // up to date status of I60.0 = Q 20.7 // Output 20.7 in the PIQ (Process Image Outputs), again this could be an MW or DBW more logic if needed . . . L QW 20 T PQW 20 // Write directly to Output card[/code] The above code snippet could be called in a cyclic interrupt OB (e.g. OB35 which you call every few ms or so) OR you can have muliple calls of it "scattered" throughout OB1. If you opt for a fast call rate cyclic Interrupt OB, please make sure that it has enough time to finish crunching through its code before it is called again (otherwise OB80 will come knocking...) One last thing: Reading in inputs fast (and/or frequent) and doing the same to outputs is only one side of the equation. You will need to check the Inputs and Output cardsreaction times too (e.g. standard DI cardsneed around 5 ms to "register"a 0-24V transition,the same goes for outputs andthe times can be found in the technical spec for the I/O cards). Also, if your I/O cards are on Profibus, you'll need to take into account your Profibus update time too. Anyway, I hope this helps and good luck with your project |
Cheers |
|
This contribution was helpful to2 thankful Users |
Follow us on