PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 130|回复: 0

[西门子] 西门子S7-1200 变量的访问

[复制链接]
发表于 2024-8-16 21:15:42 | 显示全部楼层 |阅读模式
>
1. 访问一个变量数据类型的“片段”
  在PLC(可编程逻辑控制器)中,你可以按照位、字节或字的级别来访问变量和数据块中的变量片段。具体的访问方式如下:

  • 要按位访问PLC中的变量,可以使用“<PLC变量名称>.xn”的语法,其中n表示位的编号,范围是0到31(对于双字大小的变量)、0到15(对于字大小的变量)或0到7(对于字节大小的变量)。
  • 要按字节访问,使用“<PLC变量名称>.bn”的语法,其中n表示字节的编号,范围是0到3(对于双字大小的变量)、0到1(对于字大小的变量)或0(对于字节大小的变量)。
  • 要按字访问,使用“<PLC变量名称>.wn”的语法,其中n表示字的编号,范围是0到1(对于双字大小的变量)或0(对于字大小的变量)。
  同样的访问方式也适用于数据块中的变量,语法为“<数据块名称>.<变量名称>.xn”(按位访问)、“<数据块名称>.<变量名称>.bn”(按字节访问)和“<数据块名称>.<变量名称>.wn”(按字访问)。

注意:
    可以按片段访问的有效数据类型有Byte、Char、Conn_Any、Date、DInt、DWord、Event_Any、Event_Att、Hw_Any、Hw_Device、HW_Interface、Hw_Io、Hw_Pwm、Hw_SubModule、Int、OB_Any、OB_Att、OB_Cyclic、OB_Delay、OB_WHINT、OB_PCYCLE、OB_STARTUP、OB_TIMEERROR、OB_Tod、Port、Rtm、SInt、Time、Time_Of_Day、UDInt、UInt、USInt和Word。Real类型的PLC变量可以按片段访问,但Real类型的数据块变量则不行。
   在PLC变量表中,“DW”是一个声明为DWORD类型的变量。在如下表所示的示例中,显示了按位、字节和字片段的访问方式。

2 访问一个带有AT覆盖的变量
   借助AT进行变量覆盖,可通过一个不同数据类型的覆盖声明访问标准访问块中已声明的变量。例如,可以通过ArrayofBool寻址数据类型为Byte、Word或DWord变量的各个位。
注意:
要覆盖一个参数,可以在待覆盖的参数后直接声明一个附加参数,然后选择数据类型“AT”。编辑器随即创建该覆盖,然后选择将用于该覆盖的数据类型、结构或数组。

如下图所示,DWord变量由一个Struct覆盖,包括字、字节和两个布尔值。

  块接口的“偏移量”(Offset)列中显示与原始变量相关的被覆盖数据类型的位置,可直接在程序逻辑中指定覆盖类型的地址,如下表所示。

注意:
    只能覆盖可标准(未优化)访问的FB和FC块中的变量;可以覆盖所有类型和所有声明部分的变量;可以同使用其他块参数一样使用覆盖后的参数;不能覆盖VARIANT类型的参数;覆盖参数的大小必须小于等于被覆盖的参数;必须在覆盖变量并选择关键字“AT”作为初始数据类型后立即声明覆盖变量。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-17 03:58 , Processed in 0.042324 second(s), 26 queries .

快速回复 返回顶部 返回列表