SYS2

更改PC链接区域的系统寄存器设置

可以在PC链接区域的系统寄存器40 - 47中更改值(通过FP0R、FP-S 32k、FP-X也为50 - 57)。

当PLC处于RUN模式时,SYS2将对指定的系统寄存器更改设置。s_Start包含在d_Startd_End之间定义的这些系统寄存器的新值。

标注

  • 执行此指令不会将系统ROM的内容重写到控制单元中。因此,关闭电源然后再次打开会重写工具软件指定的系统寄存器的内容。

  • 应对d_Startd_End指定40和47之间的值。此外,应始终以d_Start£d_End的方式指定值。

  • 系统寄存器的值改变,因此当验证程序时,可能会出现验证错误。

参数

输入

s_Start (WORD, INT, UINT)

包含由剩余两个变量定义的系统寄存器的新值。

d_Start (WORD, INT, UINT)

接收新值的第一个系统寄存器(40-47之间)。

必须为常量
d_End (WORD, INT, UINT)

接收新值的最后一个系统寄存器(40-47之间)。

必须为常量

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果d_Start > d_End

  • 如果指定值超出对各个系统寄存器设置值指定的范围

sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果d_Start > d_End

  • 如果指定值超出对各个系统寄存器设置值指定的范围

示例

DUT

使用数据单元类型(DUT),可以定义由其他数据类型组成的数据单元类型。DUT首先在DUT池中定义,然后像全局变量列表或POU头中的标准数据类型(BOOLINT等)一样进行处理。

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。 所有编程语言使用相同的POU头。

	VAR
		LinkAreas: @'LINK_AREAS':=RelayArea := 64, RegisterArea := 128;
		SetLinkAreas: BOOL:=FALSE;
	END_VAR

POU本体

SetLinkAreas打开时,按照LinkAreas中的定义对PC链接区域系统寄存器40至45更改值。

LD本体

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

最后更新日期: 2024-03-07此页面上的反馈松下热线