Codesys 的 new 语法。FB
时间: 2023-09-09 14:11:19 浏览: 120
CodeSys如何在两个PLC之间通信
在 Codesys 中,`new` 语法也可以用于动态地创建函数块(Function Block)实例。它的基本语法如下:
```
NEW <FB类型> [, <参数列表>];
```
其中,`<FB类型>` 指定要创建的函数块类型,`<参数列表>` 是可选的,用于指定要传递给构造函数的参数。例如,创建一个 `MyFB` 函数块类型的新实例,可以使用以下语句:
```
VAR
myFB : MyFB;
END_VAR
NEW(myFB);
```
这将创建一个新的 `MyFB` 函数块类型的实例,并将其赋值给 `myFB` 变量。或者,如果 `MyFB` 类型的构造函数需要传递一个整数参数,则可以使用以下语句:
```
VAR
myFB : MyFB;
END_VAR
NEW(myFB, 42);
```
这将创建一个新的 `MyFB` 函数块类型的实例,并将整数值 `42` 传递给构造函数。请注意,`new` 语法只能用于创建堆上的函数块实例,而不能用于创建栈上的函数块实例。此外,在不再需要函数块实例时,你需要手动释放它们,使用 `DELETE` 语法,如下所示:
```
DELETE(myFB);
```
这将释放为函数块实例分配的内存,并将其设置为 `NULL`。请注意,使用 `NEW` 和 `DELETE` 语法时需要特别小心,因为错误的使用可能导致内存泄漏或者程序崩溃。因此,在使用这些语法时,你需要仔细地检查代码,并确保正确地管理内存。
阅读全文