1. Slice片段访问
在TIA Portal 编程中,针对S7-1200/1500控制器,允许用户对已定义的字节(Byte),字(Word),双字(DWord),长字(LWord)等数据类型,允许以更小的变量长度单位来独立访问,可以访问宽度为 1 位、8 位、16 位或 32 位的区域,这就是Slice片段访问。
Slice片段访问不支持对常数变量的访问。
(, 下载次数: 7) 上传 点击文件名下载附件 (, 下载次数: 8) 上传 点击文件名下载附件 图1:Slice片段访问结构示意图 图2:Slice片段访问的语法结构 2. AT 覆盖变量用户程序要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。 这样,可以选择对不同数据类型的已声明变量进行寻址。例如,可以使用BOOL 的 ARRAY 对 WORD 数据类型变量的各个位寻址。要覆盖变量,直接在待覆盖的变量后声明附加变量,并用关键字“AT”加以标识对于变量覆盖可适用以下通用规则:· 在 STL、LAD、FBD 和 GRAPH 中,S7-1200 和 S7-1500 允许变量覆盖。· SCL 支持在所有 CPU 系列中覆盖。· 可以在以下块中覆盖变量:o 在标准访问的代码块中o 在可优化访问具有保留设置“在 IDB 中设置”的变量的代码块中· 覆盖变量数据宽度必须小于等于被覆盖变量的数据宽度。· 不可以覆盖 VARIANT 和 INSTANCE 数据类型的变量。· 无法覆盖库中声明为接口中参数的块。· 无法覆盖接口中声明为参数的结构化 PLC 变量S7-1200/1500: 在 FC 中使用 AT对于 S7-1200/1500 中的 FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无法通过程序实现,则可通过 .X、.B、.W 或 .D 语法对现有变量中的区域进行寻址。 (, 下载次数: 5) 上传 点击文件名下载附件 图3:AT 覆盖变量示例 (, 下载次数: 4) 上传 点击文件名下载附件 欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4
图1:Slice片段访问结构示意图 图2:Slice片段访问的语法结构
2. AT 覆盖变量
用户程序要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。 这样,可以选择对不同数据类型的已声明变量进行寻址。例如,可以使用BOOL 的 ARRAY 对 WORD 数据类型变量的各个位寻址。
要覆盖变量,直接在待覆盖的变量后声明附加变量,并用关键字“AT”加以标识
对于变量覆盖可适用以下通用规则:
· 在 STL、LAD、FBD 和 GRAPH 中,S7-1200 和 S7-1500 允许变量覆盖。
· SCL 支持在所有 CPU 系列中覆盖。
· 可以在以下块中覆盖变量:
o 在标准访问的代码块中
o 在可优化访问具有保留设置“在 IDB 中设置”的变量的代码块中
· 覆盖变量数据宽度必须小于等于被覆盖变量的数据宽度。
· 不可以覆盖 VARIANT 和 INSTANCE 数据类型的变量。
· 无法覆盖库中声明为接口中参数的块。
· 无法覆盖接口中声明为参数的结构化 PLC 变量
S7-1200/1500: 在 FC 中使用 AT
对于 S7-1200/1500 中的 FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无法通过程序实现,则可通过 .X、.B、.W 或 .D 语法对现有变量中的区域进行寻址。 (, 下载次数: 5) 上传 点击文件名下载附件 图3:AT 覆盖变量示例 (, 下载次数: 4) 上传 点击文件名下载附件 欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4
图3:AT 覆盖变量示例
(, 下载次数: 4) 上传 点击文件名下载附件 欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4