12/13/2010 9:35 AM | |
Joined: 7/2/2008 Last visit: 7/2/2024 Posts: 928 Rating:
|
Hello Tagolover,
There should be no problem using pointers with software redundancy system. It should be something in your program which you may solve it quicker if you can upload your code to allow programming experts to take a look on. I recommend to check the block stack to know what's causing the endless loop that cause the scan cycle error. Maybe (I doubt) you have a very huge program which needs more than 150msec (default) to be executed. Download OB80 and try increasing your scan cycle time. Also don't forget to check all return values of software redundancy blocks in order to notice if you have something wrong with your software redundancy implementation. Best regards, H-H |
12/13/2010 9:53 AM | |
Joined: 9/6/2008 Last visit: 5/7/2022 Posts: 1121 Rating:
|
Hi H-H thank u for your reply .. Well i have tested the redudancy without my program it works like a charm. But when i load say one or two blocks with pointer address in the cpu i have a error. i have attached the block with programming method used please help me... i am little confused, AttachmentTRAINER.zip (71 Downloads) |
Last edited by: Tagolover at: 12/13/2010 9:54 AMJazz |
|
12/13/2010 10:35 AM | |
Joined: 10/7/2005 Last visit: 8/9/2024 Posts: 3016 Rating:
|
Hello Tagolover to start with, it is easier to get help if you wouldNOT Know How protect the Blocks that you believe are the source of the problem. Having said that, one thing that does stick out in your FB 102 is the fact that you are directly (non symbolically) access Instance data inside theFB ( e.g. "=DIX 22.3" etc.) whiele doing a Multi Instance call of it (and without takingthe Multi Instance start address in AR2 into consideration). This is bound to fail andneeds to be fixed and please help us to be able to help you and post the whole program without Know How protection here. I hope this helps |
Cheers |
|
12/13/2010 11:45 AM | |
Joined: 9/6/2008 Last visit: 5/7/2022 Posts: 1121 Rating:
|
Hi guys Thank you for your reply well sorry for that know_how_protect Well i have attached the unprotected block for the same. Please help me out Attachmenttrainer.zip (62 Downloads) |
Jazz |
|
12/14/2010 9:57 AM | |
Joined: 10/7/2005 Last visit: 8/9/2024 Posts: 3016 Rating:
|
Hello Tagolover my advise stays as before, your FBwill NOT work properly ifcalled as a Multi-Instance call and you must either avoid a Multi-Instance callor fix up the logic. Attached is a pic (based on your logic)which hopefully says more than a thousands wordsand below are a fewinks with more info on that subject: Which operations overwrite the content of ACCU or registers in STEP 7? How do you parameterize blocks, which have "ANY"-type or "Pointer" type parameters? Having said that, the "flaw" in your FB logic does NOT really explain the problem you have with your Software redundancy(well, at least I can not see a relationship). Here's what I don't quite understand: You say that when you add the FB to the programs of both CPU's, it is the Standby CPU (Not the Master CPU) thatgoes toStop with a cylcle time exceeded fault, correct? This does not make too much sense to me, as the Standby CPU hasless to do than the master CPU in a Software Redundancy based system since it does not execute the redundant part of the program. As such I can only reassure you for now that "pointer addressing" is permitted in a Software redundant systemto at least answer your initial question. Last but not least, one thing to be aware is that access to complex FC/FB parameters (e.g. UDT as an IN_OUT in your FB102) does comeat theprice of considerable memory and runtime consumption. You can find out more about this at THIS thread (in case your FB102 is called plenty of times in the non-redundant part od the program, it can explain the cycle time problems. I hope this helps and please let us know what you find |
Cheers |
|
12/14/2010 3:18 PM | |
Joined: 9/6/2008 Last visit: 5/7/2022 Posts: 1121 Rating:
|
Hi guys happy news Well we managed to solve the redudancy problem, we had a time stamp conflict in the pointer address. If i have to fix my logic, what should i do. As you have seen i have to trasfer the 32 bit value to groupe display for alarm indication in the WinCC. I have used the "temp_1" address in Stat call. It is because i have used the same block in S7 400 - 412 cpu and works like charm. I have called around 80 analog blocks and it works. But your right the memory size increased drastically. If it is wrong way of addressing or programing please advice me. one more thing if for an eg: i transfer the say like below L DIX [AR2,P#22.0] Will the above work as i have done the same in the flag word ouput. I went thorugh the links that you gave me well i am little confused right now 1. Should i use "DIX 22.0 " or DIX [AR2,P#22.0] , or should i restore the accu data if so how because i am not able to understand the entry-ID 22531225 fig 3. Well please advice me what changes i have to do to correct the direct access, i saw your attachment, should i call the block with a instance db then will it solve the error you have noted. Well thank you for your reply.... |
Last edited by: Tagolover at: 12/14/2010 3:52 PMLast edited by: Tagolover at: 12/14/2010 3:37 PMLast edited by: Tagolover at: 12/14/2010 3:22 PMLast edited by: Tagolover at: 12/14/2010 3:22 PMLast edited by: Tagolover at: 12/14/2010 3:19 PMJazz |
|
Follow us on