2/7/2012 2:42 PM | |
Joined: 11/4/2011 Last visit: 8/25/2024 Posts: 253 Rating: (53) |
In my VlvMot2 SCL source I found one weird thing. Code looks like this: [code]... VAR MotValve_ENO : BOOL := 0; MotValve : FB1900; ... BEGIN; CASE TOP_SI.NUM OF 100: MotValve ( OpenAut := OpenAut, ... // passing all the inputs FbkClose := FbkClose; ); MotValve_ENO := ENO; OK := OK AND MotValve_ENO; ELSE: MotValve ( OpenAut := OpenAut, ... // passing all the inputs FbkClose := sFbkClose; ); MotValve_ENO := ENO; OK := OK AND MotValve_ENO; sFbkClose.Value := (MotValve.Close.Value AND NOT(FbkClutch.Value)) OR (FbkClose.Value AND sFbkClose.Value); END_CASE; // adapt my inputs according to MotValve inputs // set my outputs according to MotValve outputs [/code] So when VlvMot2 is called from OB100 and from some other OB it would have the only difference: case of OB100: ValveMot.FbkClose := FbkClose; case OBx ValveMot.FbkClose := FbkClose + FbkClutch; Why would I need to pass mere FbkClose signal if it means nothing without FbkClutch ? So I decided to delete first part of the code and not to analyse TOP_SI.NUM, leave just one call of the ValveMot. It's ok, right? AttachmentSCL Source VlvMot2 v2.0.zip (138 Downloads) |
Last edited by: Andrew6 at: 2/7/2012 5:03 PMv2.0 |
|
2/8/2012 9:30 AM | |
Posts: 836 Rating: (100)
|
If it dosn't matter, you can just delete the If statement and let always the second logic be processed. |
Follow us on