CFC编程常见问题
熊来速润
2021年12月27日 22:03

问题1. CFC 里能不能调用LAD/STL编写的FC/FB

在CFC中可以调用其他编程语言编写的FC/FB,例如使用LAD编写的设备逻辑处理代码等。

使用LAD/STL等编写FC/DB时需要注意功能块号的选择,具体信息请参考问题2;

问题2.如何查看CFC中给用户预留的FC/DB范围

在CFC的编程窗口中,依次打开菜单项

“Options" >“Customize&#​34; >"Compile/Download&#​34;:

在弹出的窗口中,"Areas Reserved for Other Applications”中可以设置和查看给用户预留的FC和DB范围

问题3.修改FC/DB块范围时报错

CFC编译过程中会根据Chart中插入的功能块和运行组的设置,自动创建FC和DB块。如果程序中还有通过LAD/STL/FBD创建的FC和DB,在CFC编译过程中为了保护这些用户代码,可以指定哪些范围中的FC和DB块被保留。

根据实际需要可以调整预留的FC和DB块的范围,但在调整过程中,可能会弹出如下错误提示:

导致这个问题的原因是设置的新范围并不能涵盖所有用户自定义的FC/DB。可以将涉及到的FC/DB修改块号来适应新的范围。

在FC/DB的范围设置窗口中还可以通过“Compress”选项来调整CFC相关的FC/DB以实现块号的连贯性。但使用这个功能需要注意:

1、使用Compress之前使用Read Back功能回读参数;

2、Compress之后需要对CPU进行全部下载;

3、对OS重新编译和下载。

问题4.CFC中如何监控功能块和变量

完成CFC的编译和下载之后,点击工具栏上的按钮,即可开启测试模式( "TestMode&#​34;)。在测试模式下选中需要监控的功能块,点击右键选择"Watch On”,或者在菜单&#​34;Debug”下选择Watch On”"。此时该功能块的监控列表( &#​34;Watch List")中包含的管脚都会开始监控。如果需要监视该功能块的其他管脚,则可以选择该管脚,点击右

键选择“Add I/O",或者点击功能工具栏上的一即可将其添加到功能块的Watch List中:

每次开启测试模式,所有的功能块管脚不会自动被监控,这是因为默认情况下,CFC为了降低监控通讯负荷对AS的影响,都是在运行模式( "Process Mode&#​34;)工作。但是,也可以在CFC编程窗口的菜单项"Debug”中选择&#​34;Laboratory Mode'来激活实验室模式。工作在这种模式下,只要测试模式开启,CFC中所有功能块的Watch List中包含的管脚都会自动被监控。

问题5.如何禁用部分CFC的执行

默认情况下,CFC中插入的功能块都是隶属于某个OB3x下、以CFC名称命名的运行组。双击功能块上的高亮区即可打开运行组窗口

在运行组编辑器中也可以自己创建新的运行组,将需要禁用的功能块拖放到其中。在程序中可以通过-一个BOOL类型的输出来激活/禁止-一个运行组,具体过程是:

选择一个功能块的BOOL类型输出管脚,点击菜单项"Insert&#​34;→“Interconnection toRuntime Group...":

编译下载程序。只要上图中“StruDiIn”的管脚"Value&#​34;为0,名为"TIC 1003&#​34;的运行组就会被禁止执行。