各位好,我现在用的是400H型CPU,配置了F系统软件包,使其具有安全功能,采用CFC编程安全程序。我想把安全程序中的布尔输出值存入M存储器相应位上,方便将来读取,请见附件中我的CFC连接(图1)。在编译的时候,出现如下错误:
Module not configured or parameter VALUE not supplied [Configure a module for this driver in HW Config and link it in SIMATIC Manager with the driver via "Generate module driver".] 见图2
我想问一下在安全程序中是否可以把输出写入M存储器中?导致我出错的原因是什么?输出驱动用的不对?还是其它原因?我硬件组态中已经把CPU和F模块设置为安全模式。
图片说明:
最佳答案
1、在安全系统中, F 程序对于 M 区可读不可写,有关使用M 区注意:
可以通过过程映像区(PII)使用来自标准用户程序的 M 区或者来自标准 I/O 的信号实现标准程序和 F 程序间的通信。禁止从标准程序到故障安全程序的数据块的写访问。此规则的唯一例外是当使用块 F_ACK_OP 进行故障安全用户确认时。
在安全程序中,如果希望从标准用户程序(M 区或者标准 I/O 的 PII)中读取数据,而该数据可以通过标准用户程序或者运行着的 F 系统中的HMI 所改变,例如由于标准用户程序要被更高优先级的时间中断处理,这就需要使用单独的 M 区地址。在进入 F 程序运行时间之前,必须立即将数据从标准用户程序写入到这些 M 区中。然后在安全程序中仅访问这些 M 区地址就可以了。
还要注意,在组态 F CPU 时(在硬件配置中的 F CPU 的对象属性对话框中),所定义的时钟标记可以在 F 程序运行时间内改变,因为时钟标记与 F CPU 周期运行不同步。
2、详见:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=22685427&nodeid0=10805161&load=content&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN
提问者对于答案的评价:
thx~
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc237247.html