更改PC链接区域的系统寄存器设置
可以在PC链接区域的系统寄存器40 - 47中更改值(通过FP0R、FP-S 32k、FP-X也为50 - 57)。
当PLC处于RUN模式时,SYS2将对指定的系统寄存器更改设置。s_Start包含在d_Start和d_End之间定义的这些系统寄存器的新值。
执行此指令不会将系统ROM的内容重写到控制单元中。因此,关闭电源然后再次打开会重写工具软件指定的系统寄存器的内容。
应对d_Start或d_End指定40和47之间的值。此外,应始终以d_Start£d_End的方式指定值。
系统寄存器的值改变,因此当验证程序时,可能会出现验证错误。
输入
包含由剩余两个变量定义的系统寄存器的新值。
接收新值的第一个系统寄存器(40-47之间)。
必须为常量接收新值的最后一个系统寄存器(40-47之间)。
必须为常量如果d_Start > d_End
如果指定值超出对各个系统寄存器设置值指定的范围
如果d_Start > d_End
如果指定值超出对各个系统寄存器设置值指定的范围
使用数据单元类型(DUT),可以定义由其他数据类型组成的数据单元类型。DUT首先在DUT池中定义,然后像全局变量列表或POU头中的标准数据类型(BOOL、INT等)一样进行处理。
所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。
VAR
LinkAreas: @'LINK_AREAS':=RelayArea := 64, RegisterArea := 128;
SetLinkAreas: BOOL:=FALSE;
END_VAR
当SetLinkAreas打开时,按照LinkAreas中的定义对PC链接区域系统寄存器40至45更改值。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,SYS2!,Instance,10,0,16,6,,?DEN?Ds_Start?Hd_Start?Hd_End?AENO);
B(B_VARIN,,SetLinkAreas,8,1,10,3,);
B(B_VARIN,,LinkAreas.RelayArea,8,2,10,4,);
B(B_VARIN,,40,8,3,10,5,);
B(B_VARIN,,45,8,4,10,6,);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY