回复:应用探讨——CFC编程应用探讨

剑忠

  • 帖子

    622
  • 精华

    57
  • 被关注

    89

论坛等级:奇侠

注册时间:2009-04-14

普通 普通 如何晋级?

发布于 2011-08-21 11:21:14

25楼

关于CFC工具的编程中的一些常见问题,我搜索了一下我历年来在论坛中的一些问答,供大家分享。不完善之处,望大家补充;错误之处,望大家指正!

1、当选择编译下载时,系统出现“FC*isoutsideuserrange.”等提示的原因是:指用户手工创建使用了提示信息中的FC块编号,但该FC块编号超出了CFC编译工具为用户使用,而默认保留的FC块编号范围。处理方法如下:(http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=44004&cid=1035)
(1)在“Options->Customize->Compile/DownLoad”的对话框中,可看见CFC工具默认保留为用户使用的FC块编号范围是60~700。
(2)用户可以更改CFC工具默认保留为用户使用的FC块编号范围,以满足用户需求。
(3)当然,也用户可以更改手工创建使用的FC块编号,以满足CFC工具默认保留为用户使用的FC块编号范围,而不致超限!

2、用CFC工具FB功能块中的一个参数量程既无须编译(Compile),也无须下载(download),只需让被修改的CFC功能块中在线(Online)即可修改了。方法如下:
(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=71736&cid=1035)
(1)首先打开被修改的CFC功能块对象名;
(2)然后鼠标点击CFC工具栏上的“TestMode(on/off)”按钮,或点击CFC窗口菜单“Debug”→“TestMode”项;
(3)之后,该CFC窗口中的功能块就随即进入在线监控状态(Online),并且会看到一些功能块的I/O端口有黄色的数字动态显示;
(4)最后,鼠标指向需要修改的功能块的I/O端口引脚后双击,在弹出的“Properties-Input/Output”(I/O参数修改对话框)中键入修改值后,“OK”按钮即可。

3、CFC嵌套图表相当于子程序吗?那这个嵌套图表怎么打开看看里面有那些逻辑?(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=70650&cid=1035)
(1)CFC嵌套图表是指用CFC工具编写,并只能由CFC工具调用的功能图块,也就算是CFC子程序吧!
(2)CFC工具编写的功能图块参数定义,可在点击“视图(View)>图表I/O(ChartInput/Output)”后编辑和查阅。
(3)要在被调用的CFC嵌套图表(功能图块)中,查阅或编辑修改CFC功能图块,先将鼠标选中当前的CFC功能图块,然后右击鼠标;之后在弹出的浮动菜单中选择“Open(打开)”即可。

4、两个CFC功能块在不同的Charts里如何连线,或者在一个Charts里的不同Sheet表的CFC功能块块如何连线?方法如下:(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=45213&cid=1035)
打开任意一个CFC块后,如果CFC编辑视窗在“Overview(概貌)”显示模式下,可看见共有6张Sheet,3行2列,左右排列;如果CFC编辑视窗在“Sheetview(表浏览)”显示模式下,则只能看见其中一张Sheet了。CFC的调用功能块则可放置在每张Sheet里。
(一)同一张Sheet内的功能块的连线:
(1)鼠标点击一CFC块的I/O端口;
(2)按住左键并拖放至另一CFC块的I/O端口上;
(3)如果数据类型相同即连线上。
(二)不在同一张Sheet内的功能块的连线:
(1)鼠标先点击(Click)一CFC块的I/O端口;
(2)再打开另一CFC块的Sheet,并准确找到该CFC块的I/O端口上点击它(Click);
(3)如果数据类型相同即连线上。
(三)不同CFC块内的功能块连线:
(1)首先打开所有需要连线的CFC块;
(2)然后找到一个CFC块的Sheet内的功能块/O端口上先点击(Click);
(3)最后准确找到另一个CFC块内的Sheet内的功能块/O端口上点击它(Click);
(4)如果数据类型相同即连线上。

5、CFC,在编译的时候提示DB、FC或者FB不在用户范围内,导致不能编译?处理方法如下(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=44431&cid=1027)
(一)任意打开一个CFC块后,点击菜单项“Options”→“Customize”→“Compile/DownLoad”;
(而)在弹出的“SettingforCompilation/DownLoad”对话框中,可看见“FCnumbersfrom:”项.默认设置为“60to600”;“DBnumbersfrom:”项.默认设置为“1to60”;
(三)尽量不要修改这些设置,但请一定要注意如下:
(1)用户自定义DB块编号使用范围是:1~60;
(2)用户自定义FB和FC块编号使用范围是:60~600;
(3)超出以上使用范围的编号为系统占用。

6、编译的时候总是出现很多的警告(Warning)提示。通常原因是:超出了每个运行组所允许插入的CFC程序块数量。处理方法如下:
(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=36961&cid=1035)
(1)任意打开一个CFC程序块,鼠标点击菜单栏“Options”→“Customize”→“Compile/Download”;
(2)在弹出的窗口中,可看到“InstalledblocksperruntimegrouporOB:”项中,CFC编译系统自动默认设置的数值为50。即只允许每个运行组插入的CFC程序块数量为50。
(3)你可以修改“InstalledblocksperruntimegrouporOB:”项中的数值,但建议最好不要增/减允许值。
(4)如果数值超限后,最好是采用分离法。即先新建几个运行组,仍然由OB35块调用;再将“AI_CH”和“STATUS”运行组中的CFC程序块分离出去,放置在新建的运行组中,就解决问题了。
(5)注意:放置在新建运行组中的CFC程序块数量也不要超限,否则又会出现上述问题。

7、PCS7的Charts中有很多带@前缀标识是如何生成的?
(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=42101&cid=1035)
(1)在“Charts”节点中带@的CFC功能块,一般是在使用PCS7软件版本里编译(Compile)CFC功能块时,勾选了“Generatemoduledrivers”之后自动生成的。当然你也可以手工组态编辑了。
(2)这些带@的CFC功能块主要用于本项目运行后,系统的诊断和报警信息向WinCC监控画面中实时传递,以方便操作与维护人员监控和分析系统的运行状况。

8、CFC中功能块的消息组态,很多的$$是起什么作用?可参见我在论坛“WinCC与STEP7集成方式做项目”主题讨论及分享中76楼和95楼的回答:
(http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=1&b_id=5&a_id=864494&s_id=&num=126#anch)

9、什么类型的项目可以使用CFC工具编程?关于这个回答结论很多,参见如下:
(http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=38543&cid=1035)
大学之道,在明明德,在亲民,在止于至善。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

DCS/SIMATIC PCS7

共有4374条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。