技术论坛

 SIMATIC S7-1500与TIA博途软件的使用---连载29

返回主题列表
作者 主题

至圣

经验值: 11116
发帖数: 1023
精华帖: 21
楼主    2016-05-31 11:18:27
主题:SIMATIC S7-1500与TIA博途软件的使用---连载29

 以下内容节选自机械工业出版社出版的西门子自动化技术丛书----《SIMATIC S7- 1500 与 TIA博途软件使用指南》, 作者崔坚。更多更详细的内容请您参考《SIMATIC S7- 1500 与 TIA博途软件使用指南》一书。

 

 

参数类型

5.1.4参数类型

        参数数据类型是专用于FC(函数)或者FB(函数块)的接口参数的数据类型,它包括以下几种接口参数的数据类型:

 

  • Timer,Counter(定时器和计数器类型)

        在FC、FB中直接使用的定时器和计数器不能保证程序块的通用性。如果将定时器和计数器定义为形参,那么在程序中不同的地方调用程序块时,就可以给这些形参赋予不同的定时器或计数器,这样就保证了程序块的可重复使用性。参数类型的表示方法与基本数据类型中的定时器(T)和计数器(C)相同。

 

  •  BLOCK_FB,BLOCK_FC,DB_ANY

        将定义的程序块作为输入输出接口,参数的声明决定程序块的类型如FB(函数块)、FC(函数)、DB等。如果将块类型作为形参,赋实参时必须为相应的程序块如FC101(也可以使用符号地址)。

  • Pointer(6字节指针类型)

        一个指针只包含地址而不是实际值。将指针数据类型作为形参时,赋的实参必须是一个确定的地址。它可以是一个简单的地址如M50.0,也可以是指针格式指向的地址,如P#M50.0。指针寻址只支持绝对地址,所以对于DB块只能访问“标准”模式的DB块,如:P#DB10.DBX20.0 。S7-1500中优化的DB块不支持Pointer指针寻址。Pointer指针结构见图5- 14。

  • Any(10字节指针类型)

        如果实参是未知的数据类型或任意的数据类型时可以选择“ANY”类型。对于ANY指针而言,也只支持绝对地址寻址,所以对于DB块只能访问“标准”模式的DB块。S7-1500中优化的DB块不支持Any指针寻址。Any数据类型的结构如图5- 15。

 

  • VARIANT

        VARIANT 类型的参数是一个可以指向不同数据类型变量的指针。VARIANT 指针可以是基本数据类型(例如,INT 或 REAL)的对象,还可以是STRING、DTL、STRUCT 、PLC数据类型等元素构成的ARRAY。VARIANT 指针可以识别结构(如PLC数据类型),并指向各个结构元素。 VARIANT 数据类型的操作数不占用背景数据块或工作存储器中的空间。

        要特别注意的是,VARIANT 类型的变量不是一个对象,而是对另一个对象的引用,因此不能在数据块或函数块的块接口静态部分中声明,只能在输入参数、输入输出参数、或临时变量区中声明。

        调用含有VARIANT类型参数的块时,可以将这些参数连接到任何数据类型的变量。块调用时,除了传递变量的指针外,还会传递变量的类型信息。块中的代码随后可以根据运行期间传递的变量类型来执行。

        举例来说,如果程序中需要传递配方,而配方的数据结构可能不固定,不同的配方由不同的流程来处理。在这种应用中,就可以将配方定义为一个VARIANT类型的变量,不同类型的配方通过不同的PLC数据类型生成。在程序中可以通过指令判断传递过来的VARIANT变量与哪个PLC数据类型相同(即判断配方类型),之后再执行相应的指令。

        使用这些参数类型,可以把定时器、计数器、程序块、数据块、甚至是不确定类型和长度的数据通过参数传递给FC(函数)和FB(函数块)。参数类型为程序设计提供了很高的灵活性。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。