Understanding Casting and Conversion
Casting and variable conversion are essential concepts in WinCC OA for manipulating data types. While some conversions are straightforward, others require explicit casting. Let's explore the common scenarios and best practices.
Casting Variables
In WinCC OA, you can cast variables using the syntax (type)
. For example, to cast a string to an integer:
string name = "James";
int age = (int)name; // This will throw an error
However, you can cast anything to a string, including numbers:
string ageAsString = (string)40; // This is valid
Casting to bool
is also possible, where any value is considered true
except for false
and 0
:
bool isValid = (bool)40; // This will return true
Converting Time Variables
Time variables require a specific conversion approach. Use the makeTime()
function, which accepts an integer or a casted string as its argument to convert it into a time value:
int timeValue = 2020; // Example time value
time myTime = makeTime(timeValue,0,0,0,0);
This will in turn return a time that is the year 2020, while techically true it will require more data in order to be a proper full time set
Using anytype
You can cast anything to anytype
, which can hold any type of data. However, when debugging, it will most likely return a string or anytype
based on the input variables:
anytype variable = (anytype)"Hello, World!";
Conclusion
Mastering casting and variable conversion is crucial for effective data manipulation in WinCC OA. While this is only the first part there is a full subset of "Make" Functions that expand upon this.