I am writing a program that checks the temperature of the materials required to mix concrete. It then will execute a formula to determine what the water temperature needs to be to reach the desired concrete temperature. I have all of the correct information for the formula, so that is not the problem, but when I compile the program, I get multiple accumulator extension warnings, each after the math statements. I tried splitting up the math thinking that the running number was getting too large, but that is not the case as it still has this warning. When I run the program, if I expect to get something in the 80 degree range, I can get crazy large positive or negative results. The first equation is for cold weather conditions, and the second one is for hot conditions. Before I added the hot equation, the cold one worked fine. Now neither are working properly.
So my question is: What is an accumulator extension and why am I getting a warning about one after my math?
Here is my code:
temporary2 := firstBinWeight + secondBinWeight + thirdBinWeight + fourthBinWeight + cementiousMaterialsWeight + (4.54545 * waterWeight);
temporary1 := firstBinTemp * firstBinWeight +secondBinTemp * secondBinWeight + thirdBinTemp * thirdBinWeight + fourthBinTemp * fourthBinWeight +cementiousMaterialsTempTest * cementiousMaterialsWeight - temporary2 * requiredConcreteTemp / waterWeight;
outputTemp := -0.22 * temporary1;
temporary5 := requiredConcreteTemp + 112;
temporary4 := firstBinWeight * requiredConcreteTemp + secondBinWeight * requiredConcreteTemp + thirdBinWeight * requiredConcreteTemp + fourthBinWeight * requiredConcreteTemp - cementiousMaterialsWeight * requiredConcreteTemp - 4.54545 * waterWeight * requiredConcreteTemp + iceWeight * temporary5;
temporary3 := firstBinTemp * firstBinWeight + secondBinTemp * secondBinWeight + thirdBinTemp * thirdBinWeight + fourthBinTemp * fourthBinWeight + cementiousMaterialsTempTest * cementiousMaterialsWeight - temporary4 / waterWeight;
outputTemp2 := -0.22 * temporary3;