一、前两天做单元测试,做了几个模块的通道采集,有几十个点,没问题,编译和CPU运行都正常,没有错误和警告,于是我就大规模的复制组态,才编了300多个AI的通道采集(ch_ai+meas_mon),编译就出现错误和警告了,内容如下:
W: In OB100 there are 217 blocks / runtime groups / SFC charts installed. This can lead to problems when compiling with the SCL compiler.
W: CFC_B1QISHUI 352 blocks are inrted in the runtime group in OB35. This can lead to problems during compiling with the SCL compiler.
E: E: Maximum length of code area reached (max. 64 Kbytes).初一体育教案
W: W: Code generator not called becau of an error.
是何原因引起,该修改何处??
1、 这个提示是:在被OB35 调用的名称为“CFC_B1QISHUI ”的运行组,和被OB100 中调用的CFC功能块,已分别被插入了352 个和217个CFC程序块,超过了每个运行组所允许插入的CFC程序块数量;
2、 任意打开一个CFC程序块,鼠标点击菜单栏“Options”→“Customize”→“Compile/Download”;
3、 在弹出的窗口中,可看到“Installed blocks per runtime group or OB:”项中,CFC编译系统自动默认设置的数值为50。即只允许每个运行组插入的CFC程序块数量为50。
4、 你可以修改“Installed blocks per runtime group or OB:”项中的数值,但建议最好不要增/减允许值。
5、 如果数值超限后,最好是采用分离法。即先新建几个运行组,仍然由OB35和OB100调用;再将“CFC_B1QISHUI ”和OB100调用的运行组中的CFC程序块分离出去,放置在新建的运行组中,就解决问题了。
6、 注意:放置在新建运行组中的CFC程序块数量也不要超限,否则又会出现上述问题。
前两个警告为系统*能警告,设置见:
CFC->Options->Compile/Download>>>>>>
Installed blocks per runtime group or OB
每个RuntimeGroups或者OBXX中包含了过多的块(默认是50个)
警告可以通过修改设置避免,但是不建议去修改。而且该警告并不会影响下载。
Maximum length of code area reached (max. 64 Kbytes).错误提示为需要编译生成的SCL文件超过了64KB
详情见:
support./CN/view/zh/771569
引起警告和错误的原因在于你将所有的块通通放在了OB35的一个CFC中,并没有手动调整运行组。解决办法为:
在Runtime Sequence中手动添加多个RuntimeGroup,平均分配一下。或者分为多个CFC调用。
如果时滞较大的模拟量,不妨调整到到循环周期较长的OB块中执行,以减轻CPU运行负荷。
另外提个建议:大规模的组态可以借助IEA进行组态。
1、 这种情况我也曾见过,主要是项目在低版本的SCL中编辑(Edit)生成的源功能块,由低版本的CFC编译(Compile)后,再由高版本的CFC再次调用编译(Compile)后出现的
问题;
2、也就是说:这个项目肯定是先在低版本的SCL编辑(Edit)源功能块在CFC中调用编译(Compile),然后,又在高版本的CFC中再次进行调用编译(Compile)后出现的问题。
3、其实,这个问题应该无关大碍,也不影响正常使用,只是影响CFC的编译(Compile)结果提示。
4、可以将由SCL生成的源功能块在CFC工具视窗中使用“Block Types”,将在低版本SCL编辑(Edit)生成的源功能块清除(Clean Up)后,再在高版本的SCL编辑(Edit)重生成源功能块,再由高版本的CFC中调用编译(Compile),就可以了。
但是,如果CFC程序中调用的由低版本SCL编辑(Edit)生成的源功能块较多,可能这个工作量就较大了!
二、现场几台流量计(4-20MA)单独24V供电,信号进7NF10四线制模拟输入卡件,量出
回路都有8mA左右电流,但PCS7程序中,只有一个是好的,其他都为QBAD坏值,怀疑通道问题,但好值和坏值对调通道,好值还是好的,坏值还是坏的,说明通道没问题,信号正负没接错,是否坏值回路负载太大?
那是通道之间产生了共模电压电压干扰,你要将每个通道的负端都连接起来,再和10,11端子连接到一块,基本能解决干扰问题.
如果还解决不了的话,那么你就得在信号进卡件之前增加隔离栅了.
三、一台ES站、一台OS站,单站结构。出现同一条信息在ES、OS上显示时间不一致的情况,刚好差8个小时,说是时区设置的问题。呵呵,我现在不知道是在哪的时区设置。其中,报警信息中自己添加的信号时间正常,而PCS7系统由下位自动生成的报警信息屡次出现相差8个小时的问题。
这个问题出现的原因是没有做好时间同步,PLC里的时区固定是UTC时间,即格林威冶时间, 而WINCC设置的是本地时区即"北京时间东八区",正常情况下UTC时间应该比WINCC的时间慢8小时.PLC发送消息上来后,WINCC自动加上8小时送到报警里显示.
如果 在给PLC改时间时,按下了"Take from PG/PC",那么PLC的时间就超前了. 如PLC时间是0点,计算机时间也是0点,那么PLC发消息上来后,WINCC又加上8小时,就超前了. 解决问题的办法:
1) 人为将PLC的时间减少8小时
2)做好时间同步.可参考:
270 PCS7 V6.1下实现时间同步功能(更新版)(2008.02.19)
四、2个小问题
1.CFC(1)/ CFC(2),分别拉入1个AND块,在CFC(1)的AND的INT1上写CFC(2)(A,1)\1OUT确定后格式为什么不正确。区域和块编号及SHEET没错,不知哪错了。另外,要在CFC(2)的AND块的OUT上写CFC(1)(A,1)\1INT1在哪写,右键上没有文本连接选项
纳兰性德名句2.如要换成方框带箭头里面有编号的连接关系又怎么搞
3.我是S7单装的CFC,不知有关系没,
1、你的格式不对所以连错了。正确的格式是程序块名\功能块序号.引脚名称。如CFC(1)\1.
Y。对照一下,你的是否不对啊?
2、关于引脚的连接,一种快捷的方式是单击某一引脚,然后再单击目标引脚即可连接,非常方便。
3、没关系,CFC是自成系统的。
五、刚接触PCS7 问题比较浅,希望大家帮助解决。谢谢
以下是编译后的信息:
花生猪蹄汤责任用户:YTHS
正在2009-9-2 11:07:22 上编译所有图表为程序
窑头\CPU 416-2 PD\gapl
生成块驱动器:打开
生成SCL源:关闭
W:“生成模块驱动器”功能发现20个警告。
从2009-9-2 11:07:30设置采样时间
设置采样时间结束:2009-9-2 11:07:31
E: FC55在用户范围之外
W: 在程序中组态的通讯作业数(1640)超过所连接的CPU上允许的通讯作业数的警告限(1620)
W: OB100中,安装了72 块/运行组/SFC图表。这在使用SCL编译器进行编译时可能会出问题。
W: gapl_block 192块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题。
W: G_AI-1 72块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题
W: G_AI-2 166块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题
W: 在OB35中,安装了144个块/运行组/SFC图表。这在使用SCL编译器进行编译时可能会出问题。
代码生成器的结束:2009-9-2 11:08:41
1.W:“生成模块驱动器”功能发现20个警告
解答:提示你查看驱动警告,在LOG里有DRIVER的标签页,去看看就知道了,这种警告一般都没有什么问题;
2.E: FC55在用户范围之外
解答:默认从FC60开始,修改一下即可;也可通过CFC界面下->OPTIONS菜单->CUSTOMIZE->COMPILE/DOWNLOAD,将默认的FC起始数更改为55;
3.W: 在程序中组态的通讯作业数(1640)超过所连接的CPU上允许的通讯作业数的警告限(1620)
W: OB100中,安装了72 块/运行组/SFC图表。这在使用SCL编译器进行编译时可能会出问题。烤元宵
W: gapl_block 192块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题。
W: G_AI-1 72块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题
W: G_AI-2 166块被插入到运行组OB35中。这可能会在SCL编译器进行编译时引起问题
W: 在OB35中,安装了144个块/运行组/SFC图表。这在使用SCL编译器进行编译时可能会出问题
解答:可通过CFC界面下->OPTIONS菜单->CUSTOMIZE->COMPILE/DOWNLOAD->inst
alled blocks per runtime group or ob更改为更大,或者将CFC中的功能块数量降低到50(默认)以下
回答第一个警告:通讯作业数 是反映CPU的性能的标准之一:414-3最大才600 417冗余最大10000,默认2400。在CFC里选项里——>组织块任务里 可以看见通讯资源:最大通讯作业数。当超过系统的90%则编译报警。在CFC编译下载里可以看到。
余下的警告说明你OB35里的运行组太多了,可以适当的调节一下,一些不实时的运行组可以放到时间周期慢点的OB块里。
第一个错误FC55是干嘛用的,自定义的话重新定义一下,试试呢。
这几个错误/警告全是跟CFC编译选项有关,Options->Customize->Compile/Download。
FC55在用户范围之外:默认的自定义FC号为60~700),将FC55重新命名一下,并重新更新一下。
剩下的警告都是因为每个Runtime Group或者OB35中有过多的程序,导致无法生成SCL源文件。但这仅仅是个警告,不会影响实际运行。
另外楼主最好根据实际需要调整各功能块的运行组或者循环OB,以减轻CPU运行负荷。
銮字怎么读
OB块中每个运行组插入的功能块数量如果轻微超限,不会影响该OB块对该运行组中的功能块调用执行。但如果超限过度,是会影响该OB块对该运行组中的功能块调用执行的,主要表现在该OB块对该运行组中的功能块调用执行超时,严重时该OB块会出现调用执行超时,而引起CPU停机。
1。合理分配OB块调用功能块执行时的负载平衡,是每个程序设计人员要注意考虑的。
2。任意打开一个CFC程序块,鼠标点击菜单栏“Options”→“Customize”→“Compile/Download”;
市场营销渠道>微小的近义词3。在弹出的窗口中,可看到“Installed blocks per runtime group or OB:”项中,CFC编译系统自动默认设置的数值为50。即只允许每个运行组插入的CFC程序块数量为50。
4。你可以修改“Installed blocks per runtime group or OB:”项中的数值,但建议最好不要增/减允许值。
栀子花扦插5。如果数值超限后,最好是采用分离法。即在OB35块中新建3个运行组中,将108个FC和SFC块的调用分配至新建的3个运行组中,就解决问题了。
6。注意:在每个新建的运行组中放置的CFC程序块数量也不要超限,否则又会出现上述问题