通过SCL控制编辑窗口式样
FUNCTION_BLOCK VlvL
TITLE ='Valve - Large'
{ S7_tasklist:='OB100';
S7_m_c:='true';
S7_alarm_ui:='1'
}
AUTHOR: AdvLib90
NAME: VlvL
VERSION: '5.2'
FAMILY: Drives
VlvL 功能块属性
—————————————————————————————————————————————————
与消息相关SCL编译选项
Incude system attribute 'S7_server'选项必须勾上,否则CFC不能正常调用该FB。这个操作可以手动勾,也可以通过SCL操作该编译选项,这些语句写在程序的Zui开头位置,下面SCL语法例举了所有可以被SCL控制的编译选项,其中跟消息相关这条编译选项已被粗体突出,订阅号后面的文章会有对SCL编译选项说明:
{Scl_ResetOptions ;
Scl_OverwriteBlocks:= 'y';
Scl_GenerateReferenceData:= 'y' ;
Scl_S7ServerActive:= 'y';
Scl_CreateObjectCode:= 'y';
Scl_OptimizeObjectCode:= 'y' ;
Scl_MonitorArrayLimits:= 'y' ;
Scl_CreateDebugInfo:= 'y';
Scl_SetOKFlag:= 'n';
Scl_SetMaximumStringLength:= '254'
}
—————————————————————————————————————————————————
SFB35调用对CPU性能的影响
SFB35在CPU同一扫描周期在线的个数对CPU的性能有一定的影响,需要对调用条件进行优化,不用每周期都扫描所有SFB35,CPU在刚启动的时候,要处理的任务很多,这时候也要抑制消息的产生,避免CPU负荷过高和不必要的如硬件消息产生。如,触发消息的信号没有任何变化的时候可以作为不调用SFB35的条件。下面在静态变量区存储了上一周期的报警信号状态,用于比较当前CPU扫描周期信号状态。