Init(R,C,pD) : Must be called in order to setup the matrix (it will be empty until this method is called).
+
+ Init(R,C,pD) : Must be called in order to setup the matrix (it will be empty until this method is called).
+/// Init(R,C,pD) : Must be called in order to setup the matrix (it will be empty until this method is called).
+/// \n Using the assignment operator (:=) to copy a DynamicMatrix will result in the new matrix retaining a pointer to the data of the old matrix! For this reason, the pragma {attribute 'no_assign'} is used to block assignment at compile-time, but inheriting sub-classes will need to include this pragma themselves.\n Note that using DynamicMatrix as the return value of a function is essentially an assignment operation and will also not work. Therefore, it is recommended to always pass DynamicMatrix objects in and out of functions using the REFERENCE TO keyword. To alleviate the pain of these assignment rules there are a ton of 'Resultant' helper functions available to use which initialize a new DynamicMatrix as the result of some operation on other matrix objects. \n
\n If the supplied index is out of bounds the value 0 is returned and a warning is generated in the Error List\n
Plc type : UINT [VAR_INPUT]; Twin type :
Plc type : UINT [VAR_INPUT]; Twin type :
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
Init(R,C,pD) : Must be called in order to setup the matrix (it will be empty until this method is called).\n\nIt is the callers responsibility to ensure that the pointer provided to the initializer is valid:\n - The length of the data structure pointed to (probably an array of LREAL) is at least as long as Rows x Cols\n - The scope of the data structure pointed to is the same as the scope of the corresponding ExternalStaticMatrix (probably declared adjacent to eachother as a VAR or GVL)\nAdditionally, direct assignment (:=) should not be used with this type of matrix because a second copy of the Matrix, but with a pointer to the original's data source, would be created. For this reason, the pragma {attribute 'no_assign'} is used to block assignment at compile-time. Keep in mind that returning a value from a function is also a form of assignment and is not allowed. \n
\n If the supplied index is out of bounds the value 0 is returned and a warning is generated in the Error List\n
\n Because Matrix is an abstract FB it cannot be assigned (:=) directly. \n Instead, each Matrix is always passed in and out of a function AS REFERENCE.\n This also allows interactions with inhereted sub-classes of Matrix more easily. \n
\n If the supplied index is out of bounds the value 0 is returned and a warning is generated in the Error List\n
\n If the supplied or or column is out of bounds then a warning message is generated in the Error List and the value 0 is returned\n
\n The value of the element at the specified row and column, or 0 if an invalid index is supplied\n
\n If an invalid dimension is supplied then a warning is generated in the Error List and the value 0 is returned \n
\n The length of the matrix in the specified dimension, or 0 if the dimension specified is invalid\n
\n If this matrix is empty or is not a vector, 0 is returned\n
\n two empty matricies are considered the same size.\n
\n Note that two empty matricies are considered equal\n
\n Many values of exponent could easily cause all of the elements to turn into NaN!\n
\n If the supplied or or column is out of bounds then a warning message is generated in the Error List and the value 0 is returned\n The value of the element at the specified row and column, or 0 if an invalid index is supplied\n
Plc type : UINT [VAR_INPUT]; Twin type :
\n Note that matrix accessor allow both read and write access to the parent matrix! \n
\n Matrix Accessors inherently store a pointer (BY REFERENCE) to their parent matrix. If the parent matrix goes out of scope (through function return) or is moved (through an online change) then the Matrix Accessor will no longer work. Therefore, they are best used quickly then destroyed, all within the scope of a single F or FB.\n
\n If the supplied index is out of bounds the value 0 is returned and a warning is generated in the Error List\n
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
\nIt is the callers responsibility to ensure that the pointer provided to the initializer is valid:\n - The length of the data structure pointed to (probably an array of LREAL) is at least as long as Rows x Cols\n - The scope of the data structure pointed to is the same as the scope of the corresponding ExternalStaticMatrix (probably declared adjacent to eachother as a VAR or GVL)\nAdditionally, direct assignment (:=) should not be used with this type of matrix because a second copy of the Matrix, but with a pointer to the original's data source, would be created. For this reason, the pragma {attribute 'no_assign'} is used to block assignment at compile-time. Keep in mind that returning a value from a function is also a form of assignment and is not allowed. \n
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.
This is PLC property. This method is accessible only from the PLC code.