10/3/2014 8:45 AM | |
Joined: 9/3/2008 Last visit: 9/19/2024 Posts: 928 Rating: (162) |
Scott, As bosandzerossays, the warning is not about undefined variables; it is about the reading variable values that has not been written to yet. If you look at the statement you posted earlier: Alm := (Value > Setpoint) or (Alm and Value > Setpoint - DB); Here you are writing to "Alm". But in the expression you are first reading "Alm": (Alm and Value > Setpoint - DB) This is where the warning comes from. In my opinion, the lack of the same warning from earlier compilers is the error. |
Michael |
|
10/4/2014 11:45 AM | |
Joined: 9/8/2009 Last visit: 7/17/2023 Posts: 1410 Rating: (152) |
bosandzeros: Yes it's a waste of CPU time. You can use STAT variables if you need default value. huggy_d1: You can combine bits, nibbles, words,... into a variable, so it should be a warning only - a reminder like. |
7/20/2015 1:40 PM | |
Joined: 7/1/2013 Last visit: 9/17/2024 Posts: 85 Rating: (4) |
Here we go again. Timer tCongestionDetection declared in static variables, timer called before "if..end_if" blcok, warning about initialization inside "if..end_if". (attached picture) |
10/18/2018 2:08 PM | |
Joined: 7/1/2013 Last visit: 9/17/2024 Posts: 85 Rating: (4) |
I still don't like this. Tia V15 UPD 3 - Despite the fact that variable is certainly written in "IF...ELSE" section warning about variable initialization appears. Best regards. |
10/18/2018 2:38 PM | |
Posts: 2826 Rating: (685) |
The compiler does not execute your code to check all scenarios. It would make the compile task too complex. Temporary tags are expected to receive an initial state. Why do you use the IF for this case?
Simply (also recommended by Siemens guidelines):
|
This contribution was helpful to1 thankful Users |
10/18/2018 3:21 PM | |
Joined: 7/1/2013 Last visit: 9/17/2024 Posts: 85 Rating: (4) |
it happends to me from time to time to make code like this. I don't know what was on my mind at the moment of writting the code. But that was not the point. |
10/18/2018 4:25 PM | |
Joined: 7/7/2010 Last visit: 9/20/2024 Posts: 15212 Rating: (2417)
|
What is the point?
|
science guy |
|
10/18/2018 7:49 PM | |
Joined: 7/1/2013 Last visit: 9/17/2024 Posts: 85 Rating: (4) |
The point is that there is some problem in compiler regarding this initialization check, and I am having hard time accepting it as it is. |
10/18/2018 9:29 PM | |
Posts: 2826 Rating: (685) |
Hello.
The compiler is cautious. The tag is given a value inside a potential execution blocking structure. It is a warning and not an error. The compiler is unaware of the execution of the code; unaware of coding style. To me this warning is not a problem; it is naggingly helpful. To have a mute option for an individual warning, would be nice. The example you have given before is a less clear-cut. I prefer to push the elapsed time into a tag. Calling the ET (or any other) timer component makes the timer update its state for the S7-1200 & S7-1500, which I avoid. |
Last edited by: #dP at: 10/19/2018 7:07:10 AM |
|
10/18/2018 9:44 PM |
|
Joined: 7/7/2010 Last visit: 9/20/2024 Posts: 15212 Rating: (2417)
|
If you have a hard time accepting a warning, try changing the word to "caution, wet road ahead", meaning, hey if you continue programming like this, you will eventually forget to initialize a tag and will "run off the road". If you feel strongly enough that the internals of exhaustive case, if, and even inside oddly configured loops should be checked for "initialization", submit your concern to Siemens using the support request system available from these forums. I long ago accepted that there are things I can change, things I cannot change, and a very small number of things I can successfully get someone else to change. Talking to the wall about anything other than those I can change wastes both my and the wall's time. You need to stop talking to the wall and start talking directly to Siemens. I would like to be able to right-click and disable or hide warnings, but I do not feel strongly enough to contact Siemens about it. I try not to complain about it here because I already know which category this problem resides and it just is not that important to me compared to letting Siemens remove about 250% of the bloat inside the software. In these forums, I like to help those who have not figured out which category their problem resides. If they can change it, I can directly impact that with my suggestions. If they cannot change it, but think they can, like in this situation, there is the slight possibility they can contact those who can change it and it gets changed, but that requires an open mind. A mind already made up cannot be changed with facts, anecdotes, analogies, humor, logic, nor pretty much anything else.
|
Last edited by: huggy_d1 at: 10/18/2018 9:45:39 PMscience guy |
|
10/19/2018 8:40 AM |
|
Joined: 7/1/2013 Last visit: 9/17/2024 Posts: 85 Rating: (4) |
#dP - Usefull tips, thank you. But I disagree about what is compiler business and what is not. Ok huggy_d1 if there is no some minus points for you when my post is left unanswered please don't interrupt my "talking to the wall" in this case. It is much cheaper than psychologist, much heltier than alcohol etc. I'm prejudging that your atack on me is kind of releif for you. Best regards. |
10/19/2018 9:57 AM | |
Posts: 2826 Rating: (685) |
Hello.
Technology / development is driven forward by people that are not satisfied with how things are at that moment. BR |
10/19/2018 4:32 PM | |
Joined: 7/7/2010 Last visit: 9/20/2024 Posts: 15212 Rating: (2417)
|
My reply was not meant as an attack. Rather, I replied with a bit of advice given to me in the past, which I then passed on to you. You either accept or reject the advice. By your thinking I was attacking you, I believe you rejected the advice.
|
science guy |
|
This contribution was helpful to1 thankful Users |
Follow us on