abplc7用户自定义数据类型
- 格式:doc
- 大小:1.35 MB
- 文档页数:32
Controllogix是Rockwell公司推出AB系列的模块化PLC,它代表了当前PLC发展的最高水平,是目前世界上最具有竞争力的控制系统之一,Control- logix将顺序控制、过程控制、传动控制及运动控制、通讯、I/O技术集成在一个平台上,可以为各种工业应用提供强有力的支持,适用于各种场合,最大的特点是可以使用网络将其相互连接,各个控制站之间能够按照客户的要求进行信息的交换。
Controllogix目前在工业生产中得到广泛的运用,本文详细介绍Rockwell Controllogix PLC冗余系统在汽轮机发电中的应用。
Controllogix可以提供完善的控制器的冗余功能,采用热备的方式构建控制器,两个控制器框架采用完全相同的配置,它们之间使用同步电缆连接,不仅控制器可以采用热备,通讯网络也可以采用相似的方式进行热备,除以上的部分可以热备外,控制器的电源也可以进行热备,这样大大提高了控制器的运行的可靠性。
2 系统介绍在某焦化厂干熄焦汽轮机发电项目的DCS控制系统中,采用了冗余的Controllogix,系统结构如图1所示。
上位机通过交换机与PLC处理器通讯,远程框架通过冗余的ControlNet 连接到控制器框架,同时,远程框架采用了冗余电源配置。
整套系统具有很高的可靠性,满足了汽轮机发电系统对于PLC控制部分需要长期无故障运行的要求。
上位机采用Rsview32软件,用以监控现场设备的运行。
图1 系统结构图本地框架由L1和L2 框架构成,运行时L1和L2互为热备,构成了冗余,L1和L2框架各个槽位的所配置的模块如表1所示。
R1,R2和R3是远程框架,所有的点号都连接到远程框架的模块,远程框架的供电使用了AB的冗余电源(1756-PAR2)。
表1 L1和L2框架各个槽位的所配置的模块设置主从控制器框架的1756-CNBR/D的节点地址时应注意,他们的地址拨码应该相同,应该是系统中挂接在冗余ControlNET网上所有节点的最高地址,在本系统里面都设置为4,远程站的节点地址分别为1,2,3。
AB PLC编程软件RSLOGIX5000入门7——UDT用户自定义数据类型在本章中,我们将介绍如何通过用户自定义数据类型和数据范围划定来规划标签数据库。
这里将学到§ 了解使用 UDT 的优势§ 学习如何优化 UDT 规划§ 使用数据范围划定帮助简化并加快开发工作我们现在将重点关注 Logix 控制器中的数据规划。
打开现有控制器文件1. 在计算机桌面上,双击 Lab Files 文件夹。
2. 双击名为 Conveyor_Program_S3.ACD 的现有项目。
这样将在 RSLogix 5000 中启动该项目。
为传送带创建用户自定义数据类型您已重新组织了程序规划以更好地利用 Logix,现在已准备好开始对数据规划进行重新组织。
可注意到,工程师规划数据的方式仍像使用带有整数、实数和定时器数据表的传统 PLC 一样。
问题是,当与设备关联的数据分布到控制器内存中的各处时便很难进行跟踪。
您已再次决定充分利用 Logix,使用用户自定义数据类型。
用户自定义数据类型用户自定义数据类型也称为 UDT 或结构,借此按逻辑方式对数据进行组织或分组,以便所有与设备关联的数据都可组合在一起。
例如,每个传送带都有 8 个整数值、3 个实数值、2 个定时器和 11 个与其关联的布尔值。
在传统PLC 中,可能需要 4 个不同的数据表。
然后,当您具有多条传送带时,您可能需要详细地将传送带映射到各个数据表中。
这样就会变得很难管理。
通过 UDT 能够实现的是将不同的数据类型(整数、实数、定时器、布尔等)组合到一起,共同作为用户自定义数据类型。
然后便可创建该 UDT 类型的数组。
这可使得编程工作、代码的记录和数据的跟踪都更加轻松。
1. 在控制器项目管理器中,双击"控制器标签"(Controller Tags)。
将出现标签编辑器。
可注意到,标签数据库的外观与传统 PLC 非常类似。
Logix 标签数据库在传统 PLC 中,用物理地址标识各个数据项,例如 N7:0 或 B3:0/0。
PLC基本数据类型PLC(可编程逻辑控制器)是一种常用于自动化控制系统中的计算机控制设备。
它可以通过编程来控制和监测各种工业过程,如生产线、机器人等。
在PLC编程中,了解和正确使用基本数据类型是至关重要的。
本文将详细介绍PLC的基本数据类型,包括其定义、特点和使用方法。
1. 位(Bit)类型位是PLC中最基本的数据类型之一,它只能存储0或1两个值。
在PLC编程中,位类型常用于表示开关状态、传感器信号等。
例如,我们可以使用一个位类型的变量来表示一个按钮的状态,当按钮按下时,该变量的值为1,否则为0。
2. 字节(Byte)类型字节是PLC中存储数据的基本单位,它由8个位组成。
字节类型常用于存储和传输较小的整数值。
例如,我们可以使用一个字节类型的变量来表示一个传感器的测量值,范围通常为0到255。
3. 整数(Integer)类型整数类型用于存储整数值,其范围通常为-32768到32767。
在PLC编程中,整数类型常用于表示计数器值、定时器值等。
例如,我们可以使用一个整数类型的变量来记录一个生产线上产品的数量。
4. 长整数(Long Integer)类型长整数类型用于存储较大范围的整数值,其范围通常为-2147483648到2147483647。
在PLC编程中,长整数类型常用于表示较大的计数器值、时间戳等。
例如,我们可以使用一个长整数类型的变量来记录一个工厂的运行时间。
5. 浮点数(Floating Point)类型浮点数类型用于存储实数值,包括小数和科学计数法表示的数。
在PLC编程中,浮点数类型常用于表示温度、压力、流量等模拟量。
例如,我们可以使用一个浮点数类型的变量来表示一个温度传感器的测量值。
6. 字符串(String)类型字符串类型用于存储文本数据,如字符序列。
在PLC编程中,字符串类型常用于表示文本标签、报警信息等。
例如,我们可以使用一个字符串类型的变量来存储一个设备的名称。
7. 布尔(Boolean)类型布尔类型用于存储逻辑值,即真(True)或假(False)。
AB-PL的说明书1.当你组建一个输入模块的时候。
例如:1.[1]1756-IB16模块,打开全局变量(Controller Tags)会看到Local:1:C,再打开Local:1:C会看到(输入模块的组态数据)。
2.Local:1:I是1756-IB16模块的输入点,打开Local:1:I可可以看到Local:1:I.Fault(故障输入点)所谓故障点就是说当模块某个点发生错误时就对应某个通道故障。
Value下将显示为“1”状态。
3.Local:1:I.Data是数据输入点,本例为16个点。
4.[2]1756-OB16模块,打开全局变量(Controller Tags)会看到Local:2:C,再打开Local:2:C会看到(输输出模块的组态数据)。
5.Local:2:O是1756-OB16模块的输出点,本例为16个点。
6.Local:2:里面的点可以用来查看本模块的输出点是否正确。
2.当某个点采用“别名”的时候,例如:变量名pen的下面将是〈Local:1:I.Data.0〉标志。
3.如何改变AB-PLC的通道,我们可以采用“变量名”的方式是很方便的。
例如:变量名pen以前使用的通道是< Local:1:I.Data.0> ,而现在0这个通道坏了,我们就把< Local:1:I.Data.0>改为< Local:1:I.Data.1>的通道就可以了,期于由pen所带的点都将随着改变。
将鼠标拖到你所要修改的点位上(只变量名),点极右键将会出来很多选项,选中Edit”pen”Properties点右键,将打开一个对话框。
可以看到如下:Name 名字penDescription 说明(描述)Tag Type: Base 基本名标签类型Alias 别名“本例选择Alias”ProducedConsumedAlias For: 本例选择Local:1:I.Data.1别名地址Data Type:BOOL数据类型Scope: MainProgram 主程序范围Style: Decimal样式将所有的如上图设置完之后,点极确认,随后程序上的点随之改变。
2012-04-12 数据类型数据类型目录1Predefined Data Type (3)1.1Basic Predefined Data Type (3)1.2Advanced Predefined Data Type .............................................................. 3高级预定义数据类型1.3Module Predefined Data Type (4)2User Defined Data Type (5)2.1UDT概况 (5)2.2通用标准UDT (5)2.3非标准UDT (8)1、预定义数据类型基本预定义数据类型高级预定义数据类型模块预定义数据类型2、用户自定义数据类型1.Predefined Data TypePredefined预定义的数据类型是在系统中定义且不可修改的数据类型●Basic Predefined Data TypeBasic Predefined是构成数据类型的基本单元,所有其它数据类型基于此基础●Advanced Predefined Data TypeAdvanced Predefined是Rockwell 开发的一些由Basic Predefined数据类型组成,方便编程人员使用的系统自带的数据类型,如TMR(timer),RIN(Redundant Input冗余输入),下图1以RIN为例,所有的组成均为BOOL 量,每个变量的作用各不相同,可以参见RIN的注释,??图1Module Predefined Data Type【模块预定义数据类型】当编程人员在硬件组态时在IO/Configuration中添加模块时,系统自动生成对应该模块的标签,而Module Predefined数据类型是此类标签的数据类型,如下图所示当我们在硬件组态中添加sz_UB030E2时,自动会生成sz_UB030E2:I表示该模块的输入变量,而AB:1791DS_IB8XOB8_Safety2:I:0即为该模块的预定义数据类型,相同模块由于参数设置的不同,预定义数据类型可能不一样,详见硬件配置中的描述er Defined Data Type●UDT概况1,User Defined Data Type(下文简介UDT)是用户自定义数据类型,可以由各种预定义数据类型或者其他数据类型构成2,UDT将用户关于某一功能(如滚床,气缸)的所有需要用到的变量统一在同一组织结构中3,UDT减少了系统中变量的数量4,UDT使逻辑更加标准化,更具有可复制性●通用标准UDT user defined data type1,通用标准中关于滚床,气缸,关于Cell ,Station,Action【动作】和一些标准柜的UDT,不能删除任何东西而且最好不要修改,下图是以Action的UDT,在Action的动作程序需要用到的变量都包含在此UDT中如我们需要有关闭第一组夹头这个程序,首先我们需要建立已za_Action为数据类型的标签Clamp1Close,并且在CloseClamp的程序段中需要用到的中间变量我们都能在Clamp1Close变量组中找到,如下图1代表关闭完成,图2代表关闭的自动条件,图3代表关闭的命令图1图2图32,下图是以Zc_CellHMI的UDT,与Cell相关的HMI显示画面和此UDT相关,由于HMI使用标准模板,此UDT不能修改,非标准UDT –安全模块1,由于客户特殊的需求或者成本考虑,项目中经常会有非标准的盘柜或者应用,我们可以根据通用标准的UDT 根据项目特点做适当修改。
AB品牌PLC操作说明目录一、AB PLC模块选型 (2)二、软件安装................................................................................................... (4)RSLogix5000软件安装 (4)RSLinx2.55软件安装 (6)FactoryTalk View软件安装 (8)三、软件应用 (12)RSLogix5000的操作方法 (12)FactoryTalk View软件应用 (23)我公司最近使用了两套AB 品牌的1769L31的PLC ,现对其组态、编程、测试等需要注意的事项介绍如下:一、AB PLC 模块选型:AB PLC 根据不同用途大体可分为大型机(1756系列)、中型机(1769、1789系列)、小型机(1794系列)。
共有特点 1756 ControlLogix ™ 1769 CompactLogix ™ 1789 SoftLogix5800 ™ 1794 FlexLogix ™控制器任务 连续性 周期性 事件 • 32 (1 ) •• 1769-L35E 8 • 1769-L35CR 8 • 1769-L32E 6 • 1769-L32C 6 • 1769-L31 4 • 1• 32 ( 1 ) • Windows• 8 ( 1 ) •用户内存 1756-L55M12 750Kbytes1769-L31 512K1789-L10 2 Mbytes 3 1794-L33 64 Kbytes 1756-L55M13 1.5 Mbytes1769-L32E 750K无运动控制 1794-L34 512 Kbytes 1756-L55M14 3. 5 Mbytes1769-L35E 1.5M 1789-L30 64 Mbytes 5 1756-L55M16 7. 5 Mbytes1769-L32C 750K 1789-L60 64 Mbytes 16 1756-L55M22 750 Kbytes1769-L32CR 1.5M 1756-L55M23 1. 5 Mbytes1756-L55M24 3. 5Mbytes 1756- L61 2 Mbytes 1756- L62 4 Mbytes1756- L63 8 Mbytes非易失性内存 1756- L55M12 1769-L31CompactFlash1794-L331756- L55M13 1769-L32ECompactFlash 1794-L34 * 1756- L55M14 1769-L35ECompactFlash 1756- L55M16 1769-L32CCompactFlash1756- L55M221769-L35CR CompactFlash1756- L55M231756- L55M24 1756-L61CompactFlash 1756-L62CompactFlash1756-L63CompactFlash内置通讯口 1 RS-232 (DF1 ASCII)1769-L31 2 RS-232 (Chan1: DF1; Chan2: DF1 ASCII) 1769-L32E,-L35E 1 EtherNet/IP 1 RS-232(DF1,ASCII)1769-L32C, L35CR 1 ConrtolNet 1 RS-232(DF1,ASCII)取决于个人计算机 • 1 RS-232 (DF1 ASCII) • 2 1788表1选择控制器时,可根据用户要求或设备的需求来选择CPU 和I/O 模块。
Logix5000控制器Modbus RTU主从通信一、适用的控制器Logix5000控制器通过自带的串行口可以实现Modbus RTU主从通信。
这里提到的Logix5000控制器,包括:·ControlLogix控制器(1756)·CompactLogix控制器(1769)·FlexLogix控制器(1794)当此串行口组态为用户模式实现Modbus RTU主从通信时,那么此端口不能再用于编程连接。
二、机械接口与功能特性Logix5000控制器自带的串行口接口方式为常见的DB-9,RS232C,接口功能特性如下:三、接线方式1、接入RS232-Modbus通信当需要将Logix5000控制器接入RS232-Modbus实现点到点Modbus通信,可以订购以下电缆实现Logix5000控制器与通信设备的连接:·1747-CP3(用于SLC系列,使用后控制器盖无法关闭)·1756-CP3(用于Logix5000控制器)这两种电缆都可以实现RS232C连接,长度为3米。
当然,你也可以自制通信电缆来实现Modbus通信,但长度限制为15米。
接线方法如下:2、接入RS485-Modbus通信可以通过AIC+高级接口转换器(1761-NET-AIC)将Logix5000控制器连接到RS485网络实现Modbus一主多从通信。
接线方法如下:四、波特率和通信距离Logix5000控制器串行口的通信波特率有110bps、300 bps、600 bps、1200 bps、2400 bps、4800 bps、9600 bps、19200 bps、38400 bps。
默认为19200 bps。
通信距离与接口转换器质量、电缆材质和线径、波特率、从站数量和现场环境有关,遵循Modbus协议规定。
五、支持的功能码Logix5000控制器串行口实现Modbus通信仅支持以下功能码:六、需要准备的软件·RSLogix5000 V17(PLC编程软件)·RSLinx (PLC通信软件)·例程(从AB官方网站下载)·例程(从AB官方网站下载)七、Modbus RTU主站通信文件帮助你使用Logix5000控制器作为Modbus主站,ACD文件包括:·11个控制器标签·1个周期性任务·2个用户自定义数据类型使用Logix5000控制器作为Modbus主站,你必须完成下面的步骤:1、从文件中复制用户自定义数据类型到你的RSLogix5000工程。
S7-200数据类型引言概述:S7-200是一种常用的工控PLC(可编程逻辑控制器),其数据类型是指在PLC编程中用来表示不同类型数据的规范。
了解S7-200数据类型对于正确编程和数据处理非常重要。
本文将从五个大点来阐述S7-200数据类型的相关内容。
正文内容:1. 基本数据类型1.1 位(Bit):表示开关状态,可取值为0或者1。
1.2 字节(Byte):由8个位组成,用于存储整数、字符等信息。
1.3 整数(Integer):用于表示带符号的整数,可取值范围为-32768至32767。
1.4 浮点数(Float):用于表示带小数的数值,可取值范围为-3.4E38至3.4E38。
1.5 字符串(String):用于存储文本信息,长度可根据需求设定。
2. 数组类型2.1 一维数组:由相同类型的元素按顺序罗列而成,通过索引访问。
2.2 二维数组:由多个一维数组组成,可用于表示矩阵等数据结构。
2.3 多维数组:由多个二维数组组成,用于表示更复杂的数据关系。
3. 结构体类型3.1 结构体(Struct):由不同类型的成员组成,可将相关的数据组合在一起。
3.2 结构体的定义:通过定义结构体类型和成员类型来创建结构体变量。
3.3 结构体的应用:可用于表示复杂的数据结构,提高数据处理的灵便性。
4. 特殊数据类型4.1 定时器(Timer):用于计时,可设置定时时间和触发条件。
4.2 计数器(Counter):用于计数,可设置计数范围和触发条件。
4.3 文件(File):用于存储和读取数据,可进行文件操作。
5. 用户自定义数据类型5.1 用户自定义数据块(UDT):由用户定义的不同类型数据组成,可根据实际需求创建。
5.2 UDT的定义和使用:通过定义UDT类型和成员类型来创建UDT变量,并进行数据处理。
5.3 UDT的优势:提高程序的可读性和维护性,方便数据的组织和管理。
总结:综上所述,S7-200数据类型包括基本数据类型、数组类型、结构体类型、特殊数据类型和用户自定义数据类型。
触摸屏同步PLC时间的方法1. 在Studio 5000中,新建一个用户自定义数据类型UDT_DateTime,7个DINT数据类型,分别为年、月、日、时、分、秒、毫秒,详见下图.2. 在控制器标签域里,新建一个变量HMISynDateTime,数据类型为UDT_DateTime,用来存储触摸屏写过来的时间.3. 新建一个ME项目TimeSyn,在左侧目录树,打开System目录,点击GlobalConnection(全局连接),在弹出的窗口,将Date and Time Output Interval(seconds)修改为1,意思是日期时间改变间隔为1s,在Date and Time选项里,按照下图,将Year、Month等变量一一对应连接到PLC里的HMISynDateTime年月日时分秒.4. 编写程序,使用SSV指令,将触摸屏写过来的时间HMISynDateTime,去修改PLC CPU的系统时间,这样就实现了触摸屏系统时间与PLC系统时间同步.5. 在触摸屏的画面Main,新建6个“数据显示”,分别连接系统时间Year、Month、DayOfMonth、Hour、Minute、Second变量,详见下图.6. 测试效果,运行PLC和触摸屏程序,修改电脑时间(相当于修改了触摸屏时间,因为本文是在电脑上模拟运行ME项目,电脑相当于实体触摸屏),观察到PLC 时间也随之改变,说明触摸屏时间同步了PLC时间.PLC同步触摸屏时间的方法1. 在控制器标签域里,新建一个变量PLCDateTime,数据类型为UDT_DateTime.2. 编写程序,使用GSV指令,将获取的PLC系统时间存储到PLCDateTime,然后去同步触摸屏时间.3. 在ME项目里,打开System目录,点击Global Connection(全局连接),在弹出的窗口,将Date and Time Output Interval(seconds)修改为1,意思是日期时间改变间隔为1s,在Date and Time 选项里,按照下图,将Remote Year、Month等变量一一对应连接到PLCDateTime的年月日时分秒.4. 测试效果,运行PLC和触摸屏程序,修改PLC日期和时间,观察到触摸屏的日期时间也随之变化,说明PLC时间同步了触摸屏时间.结束语:至此,AB Logix5000控制器与AB触摸屏时间同步的两种方法就介绍完了,虽然本文是在电脑与仿真器中实现的,但是实体PLC与实体触摸屏时间同步的方法也然如此.。
PLC基本数据类型PLC(可编程逻辑控制器)是一种专用的数字计算机,用于自动化控制系统中的逻辑控制。
在PLC编程中,数据类型是非常重要的概念,它定义了在PLC中可以存储和处理的不同类型的数据。
本文将详细介绍PLC的基本数据类型,包括布尔型、整数型、浮点型和字符串型。
1. 布尔型(Boolean)布尔型是最简单的数据类型之一,它惟独两个可能的取值:真(True)和假(False)。
在PLC编程中,布尔型常用于表示开关状态、触发条件等。
例如,一个布尔型变量可以表示一个按钮是否按下,当按钮按下时,变量的值为真,否则为假。
2. 整数型(Integer)整数型是用于表示整数的数据类型。
在PLC中,整数型可以分为有符号整数和无符号整数。
有符号整数可以表示正数和负数,而无符号整数只能表示正数。
根据需要,可以选择不同的整数类型,如8位整数、16位整数、32位整数等。
例如,一个16位有符号整数变量可以表示一个温度值,范围从-32768到32767。
3. 浮点型(Floating Point)浮点型是用于表示实数的数据类型。
在PLC中,浮点型可以分为单精度浮点型和双精度浮点型。
单精度浮点型占用32位存储空间,而双精度浮点型占用64位存储空间。
浮点型常用于表示测量值、计算结果等需要高精度的数据。
例如,一个双精度浮点型变量可以表示一个物体的分量,可以精确到小数点后几位。
4. 字符串型(String)字符串型是用于表示文本的数据类型。
在PLC中,字符串型变量可以存储一串字符,如字母、数字、符号等。
字符串型常用于存储设备名称、报警信息等需要以文本形式显示的数据。
例如,一个字符串型变量可以表示一个产品的型号,如"PLC1234"。
在PLC编程中,使用正确的数据类型非常重要,可以确保数据的正确处理和存储。
同时,根据具体的应用需求,选择合适的数据类型也能提高程序的效率和可靠性。
除了上述介绍的基本数据类型,PLC还支持其他高级数据类型,如数组、结构体等。
PLC基本数据类型PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的电子设备,用于控制和监控各种工业过程。
在PLC编程中,数据类型是非常重要的,它决定了我们可以存储和处理的数据的种类和范围。
本文将详细介绍PLC的基本数据类型以及它们的特点和用法。
1. 位(Bit)数据类型:位是PLC中最基本的数据类型,它只能存储0或1两个状态。
位常用于表示开关状态、触发器状态等。
在PLC编程中,我们可以使用位来进行逻辑运算和判断。
2. 字节(Byte)数据类型:字节是PLC中存储数据的基本单位,它由8个位组成。
字节可以存储0-255之间的整数值。
字节常用于存储和传输ASCII码字符、整数等。
3. 整数(Integer)数据类型:整数是PLC中常用的数据类型之一,它可以存储范围更广的整数值。
PLC中的整数类型包括有符号整数和无符号整数。
有符号整数可以表示正负整数,而无符号整数只能表示正整数。
根据PLC的型号和厂家,整数的范围可以从-32768到32767或更大。
4. 浮点数(Floating Point)数据类型:浮点数是用于存储和处理实数的数据类型。
PLC中的浮点数类型包括单精度浮点数和双精度浮点数。
单精度浮点数可以表示小数点后6-7位有效数字,而双精度浮点数可以表示小数点后15-16位有效数字。
浮点数常用于表示温度、压力、流量等实际物理量。
5. 字符串(String)数据类型:字符串是由多个字符组成的数据类型。
在PLC编程中,字符串常用于存储和处理文本信息。
字符串的长度可以根据需要进行定义,但需注意PLC的内存限制。
6. 定时器(Timer)和计数器(Counter)数据类型:定时器和计数器是PLC中特殊的数据类型,用于控制时间和计数。
定时器用于测量和控制时间间隔,计数器用于记录和控制事件的数量。
在PLC编程中,我们可以使用定时器和计数器来实现各种时间和计数相关的逻辑控制。
7. 数组(Array)数据类型:数组是由相同数据类型的元素组成的集合。
PLC变量的数据类型一、标准数据类型1.1.布尔型数据类型布尔型变量可被赋予“TRUE”真或“FALSE”假.这个值为逻辑量,占用1 位存储空间.1.2.整型数据类型整型变量可以是 BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT 和UDINT.注意,当较长的数据类型转换为较短的数据类型时,会丢失高位信息1.3.实型数据类型REAL 和LREAL 是浮点数,用于显示有理数.可以显示十进制数据,包括小数部分.也可以被描述成指数形式.REAL 是32 位浮点数,LREAL 是64 位浮点数.举例R1:REAL:=+0091.4.字符串型数据STRING 型变量的声明部分在圆括号里指定了字符的数量.如果不说明大小,缺省的大小是80 个.举例35 个字符的字符串声明:str1:STRING35 := ‘This is a string’;1.5.时间型数据类型时间型变量分为DATE、TIME、TOD、DT 几种,用于输入时间数据.二、自定义数据类型2.1.数组数组定义的语法格式:<数组名> : ARRAY <L1>..<U1>,<L2>..<U2>,<L3>..<U3> OF <基本数据类型>;2.2.指针程序运行时,变量地址和功能块地址保存在指针中.指针定义的语法格式:<指针名> : POINTER TO <数据类型/功能块>;指针可以指向任意的数据类型、功能块和自定义类型.地址运算符ADR 用于把变量或功能块的地址赋给指针.在指针后面增加取内容运算符“^”,可以获取指针所指的内容.2.3.枚举枚举是一种用户自定义的数据类型,由一些字符常量所组成.这些常量被称为枚举值.枚举定义的语法格式:TYPE <标识符> : <Enum_0>, <Enum_1>, ..., <Enum_n>;END_TYPE如果枚举值没有初始化,则从0 开始计数.注意,在一个枚举型变量中,或在同一程序的所有枚举型变量中,不能两次使用相同的枚举值,如下例所示.2.4.结构在对象组织器的数据类型选项卡中,以对象的形式来创建结构变量.结构变量以关键字TYPE 和STRUCT 开始,以关键字END_STRUCT 和END_TYPE 结束.。
PLC基本数据类型引言概述:PLC(可编程逻辑控制器)是一种常用于自动化控制系统的设备。
在PLC编程中,了解基本数据类型是非常重要的。
本文将介绍PLC基本数据类型的概念、分类和特点,以及每种数据类型的详细解释和用途。
一、PLC基本数据类型的概念1.1 什么是PLC基本数据类型PLC基本数据类型是指在PLC编程中常用的数据类型,用于存储和处理不同类型的数据。
它们包括布尔型、整型、浮点型、字符型等。
1.2 PLC基本数据类型的分类PLC基本数据类型可以分为以下几类:- 布尔型:用于存储逻辑值,包括真和假。
- 整型:用于存储整数值,包括有符号和无符号整数。
- 浮点型:用于存储浮点数值,包括单精度和双精度浮点数。
- 字符型:用于存储字符或字符串。
1.3 PLC基本数据类型的特点PLC基本数据类型具有以下特点:- 占用固定的内存空间,不受具体数值大小的影响。
- 具有特定的取值范围和精度。
- 可以进行基本的算术和逻辑运算。
- 可以进行类型转换,将一种数据类型转换为另一种数据类型。
二、布尔型2.1 布尔型的定义和特点布尔型用于存储逻辑值,包括真和假。
它只占用一个位(bit)的内存空间,可表示开关状态等二进制信息。
2.2 布尔型的应用场景布尔型常用于判断条件和逻辑运算,例如判断开关状态、设置触发条件等。
在PLC编程中,布尔型常用于控制程序流程和执行条件判断。
2.3 布尔型的注意事项布尔型在PLC编程中需要注意以下几点:- 布尔型变量只能存储真或假,不能存储其他数值。
- 布尔型变量通常用于控制程序流程,需要合理命名以增加程序可读性。
- 布尔型变量在程序中的使用应遵循逻辑正确性和简洁性的原则。
三、整型3.1 整型的定义和特点整型用于存储整数值,包括有符号和无符号整数。
它占用固定的内存空间,可表示不同范围和精度的整数。
3.2 整型的应用场景整型常用于计数、计时、存储设备状态等需要使用整数值的场景。
在PLC编程中,整型常用于存储计数器值、设备状态等。
PLC数据类型PLC数据类型1、数据格式及要求①数据格式:及指数据的长度和表⽰⽅式②要求S7-200对数据的格式有⼀定的要求,指令与数据格式⼀致才能正常⼯作。
2、⽤⼀位⼆进制数表⽰开关量①⼀位⼆进制数:⼀位⼆进制数有0(OFF)和1(ON)两种不同的取值,分别对应开关量(或数字量)的两种不同状态。
②位数据的数据类型:布尔(BOOL)型。
③位地址:由存储器标识符、字节地址和位号组成,如等。
④其他存储区的地址格式:由存储器标识符和起始字节号(⼀般取偶字节)组成,如VB100、VW100、VD100等。
3、多位⼆进制数(8421码)①数及数制:数⽤于表⽰⼀个量具体⼤⼩。
根据计数⽅式的不同,有⼗进制(D)、⼆进制(B)⼗六进制(H)和⼋进制等不同的计数⽅式②⼆进制表⽰:在S7-200中⽤2#来表⽰⼆进制常数,例如“2#”。
③⼆进制⼤⼩:将⼆进制的各位(从右往左第n位)乘以对应的位权(×2n-1),并将结果累加求和可得其⼤⼩。
例如:2#=1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20=1864、⼗六进制数①⼗六进制数的引⼊:将⼆进制数从右往左每4位⽤⼀个⼗六进制数表⽰,可以实现对多位⼆进制数的准确读写。
②不同进制的表⽰⽅法;③⼗六进制数的表⽰⽅法:在S7-200中⽤16#表⽰⼗六进制常数,例如“2#1010 1110 0111 0101”可转换为“16#AEF7”。
④⼗六进制⼤⼩:将⼗六进制数的各位(从右往左第n位)乘以对应的位权(×16n-1),并将结果累加求和可得其⼤⼩。
例如:16#2F=2×161+15×160=475、数据长度:字节(Byte)、字(Word)、双字(DoubleWord)①字节(B):从0号位开始的连续8位⼆进制数称为⼀个字节②字(W):相邻两个字节组成⼀个字的长度③双字(DW):相邻4个字节组成⼀个双字长度④字双字长数据的存储特点:⾼位存低字节、低位存⾼字节。
====Word行业资料分享--可编辑版本--双击可删====一、基本数据类型1、位(bit)常称为BOOL(布尔型),只有两个值:0或1。
如:I0.0,Q0.1,M0.0,V0.1等。
2、字节(Byte)一个字节(Byte)等于8位(Bit),其中0位为最低位,7位为最高位。
如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。
范围:00~FF(十进制的0~255)。
3、字(Word)相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此此,为16位。
如:IW0由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。
字的范围为十六进制的0000~FFFF(即十进制的0~65536)。
在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。
4、双字(Double Word)相邻的两个字(Word)组成一个双字,来表示一个无符号数。
因此,双字为32位。
如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。
需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。
双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。
在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。
以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。
5、16位整数(INT,Integer)整数为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-32768~32767。
6、32位整数(DINT,Double Integer)32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。
范围为-2147483648~2147483647。
UDT----用户自定义数据类型(看不懂也要坚持一下,理解了这部分就不是新手了)在本章中,我们将介绍如何通过用户自定义数据类型和数据范围划定来规划标签数据库。
这里将学到§ 了解使用 UDT 的优势§ 学习如何优化 UDT 规划§ 使用数据范围划定帮助简化并加快开发工作我们现在将重点关注 Logix 控制器中的数据规划。
打开现有控制器文件1. 在计算机桌面上,双击Lab Files文件夹。
2. 双击名为Conveyor_Program_S3.ACD的现有项目。
这样将在 RSLogix 5000 中启动该项目。
为传送带创建用户自定义数据类型您已重新组织了程序规划以更好地利用 Logix,现在已准备好开始对数据规划进行重新组织。
可注意到,工程师规划数据的方式仍像使用带有整数、实数和定时器数据表的传统 PLC 一样。
问题是,当与设备关联的数据分布到控制器内存中的各处时便很难进行跟踪。
您已再次决定充分利用 Logix,使用用户自定义数据类型。
用户自定义数据类型用户自定义数据类型也称为 UDT 或结构,借此按逻辑方式对数据进行组织或分组,以便所有与设备关联的数据都可组合在一起。
例如,每个传送带都有 8 个整数值、3 个实数值、2 个定时器和 11 个与其关联的布尔值。
在传统PLC 中,可能需要 4 个不同的数据表。
然后,当您具有多条传送带时,您可能需要详细地将传送带映射到各个数据表中。
这样就会变得很难管理。
通过 UDT 能够实现的是将不同的数据类型(整数、实数、定时器、布尔等)组合到一起,共同作为用户自定义数据类型。
然后便可创建该 UDT 类型的数组。
这可使得编程工作、代码的记录和数据的跟踪都更加轻松。
1. 在控制器项目管理器中,双击"控制器标签"(Controller Tags)。
将出现标签编辑器。
可注意到,标签数据库的外观与传统 PLC 非常类似。
Logix 标签数据库在传统 PLC 中,用物理地址标识各个数据项,例如 N7:0 或 B3:0/0。
不使用地址注释或符号,就很难阅读逻辑。
使用分配的标签名称记录代码,例如 Nozzle_1_Temperature。
参考信息创建 Logix 项目标签的指导原则2. 在标签编辑器中单击N7旁边的+。
这将展开 N7 数组,显示其中的所有元素。
可注意到从 N7[0] 到 N7[7] 的数据已定义。
然后是从 N7[20]到 N7[27] 和从 N7[40] 到 N7[47]。
这些区域分别对应 3 个传送带,是传统的 PLC 数据表布局。
3. 也仔细查看 B3、F8 和 T4。
它们都将采用相同的格式:传送带 1 从 [0] 开始,传送带 2 从 [20] 开始,传送带 3 从 [40] 开始。
这样做的目的是使得在标签数据库中查找传送带数据更加容易。
这样确实有一定作用,但是您为传送带使用了4 个数据表,浪费内存。
而通过创建 UDT 可更好地实现这一点。
我们现在就来创建 UDT。
4. 在控制器项目管理器中的"数据类型"(Data Types) 文件夹下,单击"用户自定义"(User-Defined)旁边的+。
您将注意到这里有一个名为 Conveyor 的 UDT(已为您启动 UDT 的创建)。
5. 双击Conveyor。
这将为 Conveyor 数据类型打开 UDT 编辑器。
可以看到,UDT 混合不同的数据类型。
在编程时这是非常有用的工具。
用户自定义数据类型的指导原则§ 创建用户自定义数据类型时,记住以下指导原则:§ 如果包括表示 I/O 设备的数据,则必须使用逻辑将数据复制到 UDT 中。
UDT 中不可为 I/O 指定别名。
§ 如果要在 UDT 中包括数组,应将数组限制为一维。
UDT 不支持多维数组。
§ 创建 UDT 时,将类似的数据类型组合到一起。
这将创建更为紧凑的 UDT。
查看 UDT 后,您会注意到,类似的数据类型并未组合到一起。
BOOL 和 REAL 数据类型混在一起。
UDT的当前大小是 52 个字节。
将 BOOL 组合在一起可降低这一数字。
6. 要进行此操作,单击Motor_Overload的左侧。
这样将选中整行。
7. 单击"向上移动"(Move Up)按钮。
这会在 UDT 中将 Motor_Overload 标签向上移动。
8. 对其它 BOOL 标签重复此操作,直到它们均组合到一起。
9. 单击"应用"(Apply)。
现在请注意一下 UDT 的大小。
您已节省了 12 个字节。
10. 完成对 BOOL 标签的移动后,验证 UDT 的显示如下:11. 回到"控制器标签"(Controller Tags),展开N7标签并注意 N7[0] 到 N7[7] 及其描述。
12. 使用标签的描述将这些标签添加到 UDT。
手动执行行此操作(并要记住参考前文中的指导原则 4)。
13. 完成后,单击"应用"(Apply)接受所做更改并验证 UDT 应类似下图。
您现在已拥有一个在程序中定义传送带的完整 UDT。
14. 单击"确定"(OK)关闭 UDT 编辑窗口。
15. 在"文件"(File)菜单中选择"关闭"(Close)。
软件将询问您是否要保存对文件所做的更改,选择"否"(No)。
使用传送带UDT现在您将使用刚创建的 UDT 传送带。
您意识到 UDT 将帮助优化标签数据库,并使代码的故障处理和开发更容易。
1. 在 RSLogix 5000 的工具栏菜单中,选择"文件> 打开"(File > Open)。
2. 双击名为Conveyor_Program_S4.ACD的现有项目文件。
这样将在 RSLogix 5000 中启动该项目。
3. 在控制器项目管理器中,双击"控制器标签"(Controller Tags)。
这将打开标签编辑器。
查看标签编辑器,您将发现数据库中有一个新标签Conveyor_1。
4. 单击Conveyor_1旁边的+展开该标签。
您可注意到标签的格式与刚创建的 UDT 相同。
这可通过查看"类型"(Type) 列进行确认。
5. 在控制器项目管理器中,单击各个程序的+,展开连续任务中的 3 个传送带程序。
6. 双击例程C2_Start_Stop。
这将打开该例程,并可进行查看和编辑操作。
7. 现在显示的是梯形图例程C2_Start_Stop。
您可注意到,在此实例中 Conveyor_2 的寻址方式仍使用的是传统 PLC 的的寻址方式。
例如,在梯级 0上,定时器的地址为 T4[20]。
8. 双击例程C1_Start_Stop。
这将打开该例程,并可进行查看和编辑操作。
9. 现在显示的是梯形图文件C1_Start_Stop。
可注意到传送带 1 的寻址方式使用的是 UDT。
如您所见,代码现在可以自文档化,而且标签名称可描述其具体的意义。
您无需再像传统 PLC 中一样添加地址描述。
代码中仍有一些较早样式的地址;我们将稍后处理它们。
现在我们来继续更新其它两个传送带程序以使用 UDT。
首先我们需要创建两个新标签。
10. 在工具栏菜单中,选择"窗口> 控制器标签 - Conveyor_Program(控制器)"(Window > Controller Tags – Conveyor_Program(controller))。
这会将标签编辑器窗口置于顶层。
11. 在标签编辑器窗口的左下角处,单击"编辑标签"(Edit Tags)选项卡。
在这里我们将创建两个新标签,Conveyor_2 和 Conveyor_3。
12. 在标签编辑器中列表的底部,可注意到那里有一个开放空间,可创建一个新标签。
13. 在"名称:"(Name:)列中,输入"Conveyor_2"并在"类型"(Type) 列中输入"Conveyor"。
这样便会创建一个传送带类型的名称为 Conveyor_2 的标签。
只要记录中仍可看到铅笔图标,您便仍处于编辑模式下。
14. 要创建新标签,单击 Conveyor_2 下面的新空白行,并验证标签编辑器的显示如下:15. 使用与上述相同的方法,为Conveyor_3创建标签。
16. 完成后,验证标签数据库的显示如下:现在我们将需要更新梯形图代码以使用这些新标签。
我们将从 Conveyor_2 开始。
我们将仅修改 Alarm_Status 和 Energy_Manag 例程。
使用下表并参考 Conveyor_1 例程。
让我们从一个示例开始。
17. 在控制器项目管理器中,双击例程C2_Alarm_Status。
重要说明:我们目前将忽略任何在描述中包括文字"映射"的 B3 地址。
18. 在梯级零上,注意描述为C2电机过载的 OTE 指令。
通过查看前一页中的图,您可发现此描述与 UDT 中的第二个成员相匹配。
19. 要更改地址,双击B3[28]。
这将打开一个下拉框,以便您可选择一个新标签。
20. 单击向下箭头(这将打开标签浏览器),滚动浏览列表直到您找到Conveyor_2。
21. 单击+展开该标签,然后选择Conveyor_2.Motor_Overload,如下所示:22. 双击Conveyor_2.Motor_Overload。
这会令 Conveyor_2.Motor_Overload 成为 OTE 指令的新标签。
23. 单击标签编辑器的空白处,验证梯级的显示如下(请再次注意自文档化的代码):24. 现在,继续并完成此例程的更新。
然后更新传送带 2 的 Energy_Manag 例程。
25. 为传送带 3 重复相同的步骤。
26. 可注意到标签 Conveyor_2.Motor_Overload 确实具有描述。
对于版本 V12 和较早版本的 RSLogix 5000,在 UDT 编辑器中输入的描述并不会在 UDT 编辑器以外显示。
UDT 传递和附加描述选项从 RSLogix 5000 的版本 13开始,"工作站选项"(Workstation Options) 下提供 2 个新设置。
如果启用传递描述,则只要不为标签提供显式描述:§ 在标签是别名时将会显示基础标签的描述,或者§ 在标签是成员时将会显示定义的数据类型的成员描述,或者§ 在标签是位、数组元素或成员时将会显示基础标签的描述,或者§ 将会显示定义的基本数据类型的描述。