咸宁西门子模块总代理商PLC
咸宁西门子模块总代理商PLC
咸宁西门子模块总代理商PLC
结构数据类型Struct与PLC数据类型UDT
Struct类型和UDT类型都是一种由多个不同数据类型元素组成的数据结构,其元素可以是基本数据类型,也可以是Struct、数组等复杂数据类型以及PLC数据类型UDT等。Struct 类型可以在DB、OB/FC/FB接口区、PLC数据类型UDT 处定义使用。UDT类型可以在DB、OB/FC/FB接口区处使用。
从TIA 博途 V13SP1 开始,S7-1200 V4.0开始,PLC变量表中的I和Q也可以使用UDT类型。
UDT类型作为整体使用时,可以与Variant、DB_ANY类型及相关指令默契配合。Struct数据类型使用非常灵活,随时可以使用,但是相对于PLC数据类型 UDT有一些缺点,所以建议需要使用Struct类型时,可以使用PLC数据类型UDT代替。理论上来说,UDT是Struct类型的升级替代,功能基本完全兼容Struct类型。
数组Array
数组表示的是由固定数目的同一数据类型的元素组成的一个域,格式为:域名:ARRAY[下索引值..大索引值]of数据类型,比如DATA:ARRAY[0..7] of INT。
数组可以使用单个数组元素例如"DB1".Static_1[1],也可以使用整个数组例如"DB1".Static_1。
多维数组可以降维使用,例如三维数组:3D[0..2,0..3,0..4]of Int是一个3×4×5大小的Int数组,3D[0]是一个4×5大小的二维Int数组,3D[0,1]是一个5个元素的一维Int数组,当然多维数组下标也可以换成变量,例如3D[Tag_1,1]这种。
系统数据类型SDT
系统数据类型SDT是由系统提供,并且具有预定义的结构,它的结构由固定数目的具有各种数据类型的元素构成,不能更改系统数据类型的结构。系统数据类型只能用于特定指令,比如定时器使用的IEC_TIMER 16数据类型,可用于“TP”、“TOF”、“TON”、“TONR”、“RT”和“PT”指令。系统数据类型还有很多个,具体可以参考手册哦,这里不做详细介绍。
硬件数据类型
硬件数据类型是由 CPU 提供的,可用硬件数据类型的数目取决于 CPU。根据硬件配置中设置的模块存储特定硬件数据类型的常量。在用户程序中插入用于控制或激活已组态模块的指令时,可将这些可用常量用作参数。
比如说REMOTE数据类型,用于S7通信PUT/GET指令中远程CPU的数据地址,以P#指针的形式作为实参,例如P#DB1.DBX0.0 BYTE 10。硬件数据类型还有很多,具体可以参考手册哦,同样这里不做详细介绍。
参数数据类型Variant
参数数据Variant类型只能出现在除FB的静态变量以外的OB/FC/FB接口区。Variant类型的实参是一个可以指向不同数据类型变量的指针。它可以指向基本数据类型,也可以指向复杂数据类型、UDT等。调用某个块时,可以将该块的Variant参数连接任何数据类型的变量。除了传递变量的指针外,还会传递变量的类型信息。该块中可以利用Variant的相关指令,将其识别出并进行处理。
Variant指向的实参,可以是符号寻址,也可以是地址寻址,还可以是比如P#DB1.DBX0.0 BYTE 10这种指针形式的寻址。P#DB1.DBX0.0 BYTE 10这种结构起源于S7-300/S7-400的Any指针,S7-1200无法像S7-300/S7-400一样定义以及拆解Any指针,但是在参数类型为Variant时,可以输入这种指针,并且S7-1200将识别其为数组。P#DB1.DBX0.0 BYTE 10的解释:指向从DB1.DBX0.0开始的10个字节,并且DB1包含有10字节长度的变量。
何为PLC 的周期扫描机制?PLC的扫描周期一般包括哪几个阶段?
当PLC运行时,CPU就要执行用户程序中的操作。但是CPU不可能同时执行多个操作,只能分时地一个操作一个操作地执行。PLC利用系统软件在其内部建立了输入输出映像区,当PLC的CPU执行用户程序时,从输入映像区中读取输入信号的状态,进行相应的操作。当CPU执行完个操作后,将操作结果输出到输出映像区,然后再执行第二个操作,操作结果送到输出映像区。在程序执行过程中,PLC并不读取输入信号的真正状态,执行结果也并没有输出到PLC外部。只有当程序执行到结束指令(END)时,将输出映像区中执行结果向PLC外部输出一次,将输入信号的状态读取一次送到输入映像区。对输入输出信号的这一操作过程称为I/O刷新。I/O刷新完成后,CPU再从用户程序的条指令开始,进行下一次程序执行。PLC的这种工作方式被称为扫描方式。
PLC的扫描周期包括上电后初始处理、共同处理、上位链接服务、外设服务、运算处理、I/O刷新。
6ES7211-1BE40-0XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES7211-1AE40-0XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES7211-1HE40-0XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES7212-1BE40-0XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES7212-1AE40-0XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES7212-1HE40-0XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES7214-1BG40-0XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES7214-1AG40-0XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES7214-1HG40-0XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES7215-1BG40-0XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES7215-1AG40-0XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES7215-1HG40-0XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |