当编译CFC图形时,为什么会出现如下错误消息 “Maximum length of code area reached (max. 64 KB)” 或 “Insufficient main memory” ?

描述:
如下列表中列举了可能会导致上述编译错误的各种情况.

No. Description
1 运行组中包含过多的功能块实例
在此情况下,因为在单个任务中集成了过多的功能块实例,导致SCL编译器生成FC时超出系统允许的最大64KB的范围,从而出现上述错误信息。 n

修复:
在 PCS 7 V4.x或 V5.x 版本下,单个任务中插入的功能块由用户自己来决定。系统编译时,为每一个运行组生成一个FC块。因此,缩减FC功能块的大小需要用户自行调整。
从 PCS 7 V6.0 以上版本,系统将自动为每一个CFC图在循环任务(例如,OB35)中创建一个运行组。然而在启动任务中(例如,OB100),系统将不会为其自动分组。因此,用户需要在启动任务中手动生成运行组,并手动调整功能块实例所属的运行组。

2单个SFC中包含过多的指令
当单个SFC中包含了过多的指令或转换条件时,编译图形将会出现如下错误信息 "Maximum length of code area reached (max. 64 KB)" 。

原理:
当编译S7 program时,系统将会为每一个 SFC Type 生成一个 FB 块和两个 FC 块。FB块号在创建SFC Type时即被定义好。 FB块通过调用两个FC块来完成SFC的功能。在 SFC Type 中的每一步中组态的指令将会被生成在两个FC功能块中的一个。该FC功能块的名字自动被系统分配为 "ACTION"。在 SFC Type 中的每一个转换条件中输入的条件将会被自动生成在另一个FC中,并被系统自动命名为 "TRANS" 。

当编译时出现上述错误信息,系统将不会提供更加详细的信息来指示具体哪一个图形或哪个SFC超出了64KB的限制范围。网上FAQ ID 24411828 可以提供相应信息用于定位错误的图形或 SFC。n

关键字:
编码生成器, 内部错误n

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc337926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论