Die Funktion multipliziert zwei Matrizen vom Datentyp ARRAY[*,*] of LREAL.
Beispiel für 2x2-Matrix:
result = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} * \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}*b_{11}+a_{12}*b_{21} & a_{11}*b_{12}+a_{12}*b_{22} \\ a_{21}*b_{11}+a_{22}*b_{21} & a_{21}*b_{12}+a_{22}*b_{22} \end{bmatrix}Der Baustein multipliziert zwei Matrizen variabler Größe. Die einzelnen Elemente der zwei eingehenden Matrizen werden gelesen, multipliziert und anschließend in der matrixResult-Matrix ausgegeben.
matrix1 und Anzahl der Spalten (n) der matrix2.| LGF_MatrixMultiplication (FC) | ||||||||
|---|---|---|---|---|---|---|---|---|
| Ret_Val | Void | |||||||
| error | Bool | |||||||
| status | Word | |||||||
| Array[*, *] of LReal | matrix1 | Array[*, *] of LReal | ||||||
| Array[*, *] of LReal | matrix2 | Array[*, *] of LReal | ||||||
| Array[*, *] of LReal | matrixResult | Array[*, *] of LReal | ||||||
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| Ret_Val | Void | Void - Funktion hat keinen Rückgabewert |
| error | Bool | FALSE: Kein Fehler TRUE: Während der Ausführung des FB ist ein Fehler aufgetreten |
| status | Word | 16#0000-16#7FFF: Status des FB 16#8000-16#FFFF: Fehleridentifikation (siehe folgende Tabelle) |
| Bezeichner | Datentyp | Beschreibung |
|---|---|---|
| matrix1 | Array[*, *] of LReal | Erster Faktor: Zu multiplizierende Matrix |
| matrix2 | Array[*, *] of LReal | Zweiter Faktor: Zu multiplizierende Matrix |
| matrixResult | Array[*, *] of LReal | Produkt: Die resultierende Matrix |
| Code / Wert | Bezeichner / Beschreibung |
|---|---|
| 16#0000 | STATUS_NO_ERROR Abarbeitung ohne Fehler beendet |
| 16#8200 | ERR_MATR1_LOWBOUND_COLUMNS_MATR2_LOWBOUND_ROWS Error: Untere Grenze Spalten(Dim2) des Arrays von Matrix1 und untere Grenze Zeilen(Dim1) Matrix2 sind unterschiedlich |
| 16#8201 | ERR_MATR1_UPPBOUND_COLUMNS_MATR2_UPPBOUND_ROWS Error: Obere Grenze Spalten(Dim2) des Arrays von Matrix1 und obere Grenze Zeilen (Dim1) der Matrix2 sind unterschiedlich. |
| 16#8202 | ERR_MATR1_LOWBOUND_ROWS_RESMATR_LOWBOUND_ROWS Error: Untere Grenzen Zeilen(Dim1) der Arrays von Matrix1 und Ergbnis Matrix sind unterschiedlich. |
| 16#8203 | ERR_MATR2_LOWBOUND_COLUMNS_RESMATR_LOWBOUND_COLUMNS Error: Untere Grenze Spalten(Dim2) des Arrays von Matrix2 und untere Grenze Spalten(Dim2) der Ergebnis Matrix sind unterschiedlich. |
| 16#8204 | ERR_MATR1_UPPBOUND_ROWS_RESMATR_UPPBOUND_ROWS Error: Obere Grenzen Zeilen(Dim1) der Arrays von Matrix1 und Result Matrix sind unterschiedlich. |
| 16#8205 | ERR_MATR2_UPPBOUND_COLUMNS_RESMATR_UPPBOUND_COLUMNS Error: Obere Grenze Spalten(Dim2) des Arrays von Matrix2 und obere Grenze Spalten(Dim2) der Ergebnis Matrix sind unterschiedlich. |
| Version & Datum | Änderungsbeschreibung | |
|---|---|---|
| 01.00.00 | Siemens Industry Online Support | |
| 19.08.2015 | First released version | |
| 01.00.01 | Siemens Industry Online Support | |
| 02.01.2017 | Upgrade: TIA Portal V14 Update 1 | |
| 02.00.00 | Siemens Industry Online Support | |
| 06.02.2017 | Functionality using Array[*,*] | |
| 02.00.01 | Siemens Industry Online Support | |
| 17.08.2018 | Upgrade: TIA V15 Update 2 | |
| 02.00.02 | Siemens Industry Online Support | |
| 23.11.2018 | Upgrade: TIA V15.1 | |
| 02.00.06 | Simatic Systems Support | |
| 13.11.2019 | Regions, comments and constants are added Moved matrices to IO field. | |
| 03.00.00 | Simatic Systems Support | |
| 23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library | |
| 03.00.01 | Simatic Systems Support | |
| 02.02.2020 | Insert documentation | |