如何解决如何在PLC上运行时动态创建fb实例?
我是PLC编程的新手,我们需要为项目创建一个库。在运行时,我们需要动态创建的功能块实例。 codesys主页上描述了一个概念: https://help.codesys.com/webapp/fb_factory;product=LibDevSummary;version=3.5.15.0
我们尝试实现该示例,但没有成功。不幸的是,在codesys主页上没有有关该概念的更多信息。 有没有人建议如何在PLC上的运行时动态创建fb实例?
解决方法
要动态创建FB的实例时,首先需要在FB-Declaration上方放置以下属性:
{attribute 'enable_dynamic_creation'}
然后 必须 确保您没有周期性地调用__NEW(FB_NAME)。
然后将__NEW(FB_NAME)的结果分配给指针:
//Put this is the declaration section
pfbName : POINTER TO FB_NAME;
//Your call to create a dynamic instance
pfbName := __NEW(FB_NAME);
如果在__NEW返回后指针= 0,则表示__NEW无法分配内存。
,我做了一个简单的经典OOP 人,老师,学生示例here。
基本上,更改numberOfTeachers
中PLC_PRG
的值将导致数组people
的重新初始化,其中前numberOfTeachers
个条目是Teachers,其余是Student。您可以在“设备日志”中查看我在其中写入消息以创建/销毁教师/ Studemt的信息。
PS。我本人仍在探索CODESYS中Factory Factory设计的可能性,如果我有任何错误,请原谅!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。