如何在TIA Portal中使用符号方式按位访问非结构数据类型?

学习经验如何在TIA Portal中使用符号方式按位访问非结构数据类型?已关闭评论2,9831阅读模式

对于S7-1200S7-1500,可以按1位,8位,16位和32位的长度访问已经声明的变量。

描述

为了按字节、字和双字数据类型访问变量,需要:

  • 对于S7-1200(固件V2.0及以上)需要 STEP 7 (TIA Portal)  V11+SP1+Update 2 (或更高版本)
  • 对于S7-1500需要 STEP 7 (TIA Portal)  V12 (或更高版本)

将存储区例如 Byte Word ) 划分为更小的存储区 ( 例如 Bool )也称为存储器分片。图 01 所示使用符号方式对操作数按位、字节、字进行访问。

如何在TIA Portal中使用符号方式按位访问非结构数据类型?-图片1

使用片访问可以提供更高的编程效率并且无需在变量表里进行额外的声明。

下例所示使用符号方式按位访问。"x" 代表在字或字节中按位访问并且其后的数字表示相关位的偏移量。

如何在TIA Portal中使用符号方式按位访问非结构数据类型?-图片2

下图为按字节访问的例子。 这里 "b" 代表按字节访问并且其后面的数字表示相关字节的偏移量。

如何在TIA Portal中使用符号方式按位访问非结构数据类型?-图片3

"w" 代表按字进行访问并且其后的数字表示相关字的偏移量。

如何在TIA Portal中使用符号方式按位访问非结构数据类型?-图片4

在某些技术应用上,只需要一个字节变量的前4位或前6位(分别对应于位0至位3或位0至位5)的值用于转换字节数据类型到一个实数数据类型的值例如,一个二进制数(二进制编码字节)转换成十进制数(实数)。字节的最低位代表数值2-5。这不是小数点后的位数,但是可以自动计算出十进制数据。

位5 位4 位3 位2 位1 位0
1 1 0 0 1 0
20 2-1 2-2 2-3 2-4 2-5
1,0 0,5 0,25 0,125 0,0625 0,03125
1*1,0=1,0 1*0,5=0,5 0*0,25=0 0*0,125=0 1*0,0625=0,0625 0*0,03125=0

总计 = 1.5625.

如下SCL程序的前两行将不需要的位设为“false”。然后,根据变化得到 2-5 进行数据类型转换后的数值

如何在TIA Portal中使用符号方式按位访问非结构数据类型?-图片5

注意

STEP 7 (TIA Portal) V13 以后,语法规则从 "Variable.X0" 改为 "Variable.%X0"。如上所述示例中输入"inByte.X0"  后,STEP 7 (TIA Portal) V13 之后的版本会自动修改为"inByte.%X0"。

 
西门子STARTER V5.6 HF2安装教程 西门子

西门子STARTER V5.6 HF2安装教程

STARTER V5.6 HF2功能更新 此STARTER版本修复了STARTER V5.6 HF1元数据,特别是ReadMe OSS文件。未对软件代码进行任何更改。功能更新参见文章:西门子START...