您的当前位置:首页正文

PCS7笔记

来源:个人技术集锦


一、前两天做单元测试,做了几个模块的通道采集,有几十个点,没问题,编译和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 inserted 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 because 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

详情见:

http://support.automation.siemens.com/CN/view/zh/771569

引起警告和错误的原因在于你将所有的块通通放在了OB35的一个CFC中,并没有手动调整运行组。解决办法为:

在Runtime Sequence中手动添加多个RuntimeGroup,平均分配一下。或者分为多个CFC调用。

如果时滞较大的模拟量,不妨调整到到循环周期较长的OB块中执行,以减轻CPU运行负荷。

另外提个建议:大规模的组态可以借助IEA进行组态。

1、 这种情况我也曾见过,主要是项目在低版本的SCL中编辑(Edit)生成的源功能块,由低版本的CFC编译(Compile)后,再由高版本的CFC再次调用编译(Compile)后出现的问题;

2、 2、也就是说:这个项目肯定是先在低版本的SCL编辑(Edit)源功能块在CFC中调用编译(Compile),然后,又在高版本的CFC中再次进行调用编译(Compile)后出现的问题。

3、 3、其实,这个问题应该无关大碍,也不影响正常使用,只是影响CFC的编译(Compile)结果提示。

4、 4、可以将由SCL生成的源功能块在CFC工具视窗中使用“Block Types”,将在低版本SCL编辑(Edit)生成的源功能块清除(Clean Up)后,再在高版本的SCL编辑(Edit)重生成源功能块,再由高版本的CFC中调用编译(Compile),就可以了。

5、 但是,如果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->installed 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程序块数量也不要超限,否则又会出现上述问题

六、

Download to CPU AS\\CPU 414-4 H\\S7 Program on 2009-5-28 10:55:12 (changes only)

E: The number of communication jobs (1301) configured in your program exceeds the maximum permitted number of communication jobs (1200) of the connected CPU.

Download completed on 2009-5-28 10:55:26

1 error(s) and 0 warning(s) found

下装提示是“超过了最大允许的通讯作业数量”,需要适当修改通讯作业数量的设置。方法如下:

1。先打开“HW Config”硬件组态窗口;

2。再查看“CPU 414-4 H”的“Properties”属性;

3。在CPU 414-4 H的“Object Properties”窗口中,选择“Memory”标签;

4。在“Communication Resources”项中,适当修改(即增加)

“Maximum Communication jobs”中的数值。但Maximum Communication jobs应大于1300;

5。如果1200是绝对最大值了,这时应仍选择“Memory”标签,在

“Assigned XXXXX Bytes of max.”项里,可以看见设定值一定等于XXXXX了,所以适当增加该设定值(如增加200),从而满足1300需求。

七、我想在PCS7中利用S7_PLCSIM进行仿真,主要是wincc中利用PLCSIM,组态中已经建立了AS和wincc的S7连接,在TAG management的MPI协议下建立了变量。但是利用wincc诊断工具检查不到PLCSIM。请问是不是忽略了哪方面的设置?非常感谢。

PCS7如果还用手动建立通道,再配参数,那么变量,图标,面板如何编译上来呢.优势何在?

我建议:

1.CPU的MPI地址一定要是2.

2.插入PC站,插入一个CP1613,设置成MPI接口,与CPU在一个MPI子网上,编译OS时选择MPI通道,变量,图标和面板都上去.

3.打开PLC,下装程序,打开WINCC,运行即可.

关于PLCSIM和WINCC通讯的问题,如果在PCS7 V7.0以前,一定要通过MPI的接口,在PC站里插入CP5611,在V7.0 以后,PLC SIM开始支持以太网了,但是还不支持named connection, 仿真时要将变量编译到工业以太网下边.在打开PLC SIM时,在出现\"Select CPU Access Node\"时,要选择对应的CP443的地址即可.

1先打开PLCSIM。

2. 使用PLCSIM V5.3及以前版本时,默认的PLCSIM地址为2;要和WinCC的MPI通道参数一致。

3. 使用PLCSIM V5.4以上版本时,可以在打开PLCSIM时直接在某项目中选择所要模拟的MPI节点;同时注意该节点参数要和WinCC的MPI通道参数一致。WinCC的MPI通道右键“系统参数”--“单元”--“逻辑设备名称”选择PLCSIM(MPI)。

因篇幅问题不能全部显示,请点此查看更多更全内容