西门子S7-300 UDT复杂数据类型 最简易快速教程
- 格式:pdf
- 大小:1.17 MB
- 文档页数:20
UDT型说明:从数据类型的意义上说UDT 并不被CPU 所识别,而是在离线程序中自定义(组合)的数据类型。
S7 程序的自定义数据类型并不能装载到S7 CPU 中。
UDT 是由递增的编辑器创建并编辑或由源文件的编译而生成。
当在块调用中进行变量传递时是不能将UDT 作为内存地址区域来传递的。
因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用 UDT 的符号名来定义 IN, OUT 和IN_OUT 参数,因为系统将自动生成相对应的地址。
下表介绍了如何创建和参数化UDT 类型变量的过程。
我们将以两组各十台相同的电机为例。
UDT1 对应这些电机的所有输入变量。
1 在STEP 7 项目中插入自定义数据类型。
如图01 鼠标选中“block”文件夹并点击右键,再弹出菜单中选择命令“Insert NewObject > Data Type” 。
图01图023 打开UDT1 并输入相关数据类型的变量及其初始值。
图03 为UDT1 变量声明的例子。
图03图045 打开DB1 将变量数据类型定义为UDT1 (符号名“Motor”)。
例如图05 所示:两个数组(ARRAY)变量,每组包括10个以UDT1 为数据类型的变量(编号1 到10)。
图05由于此例两组电机是独立的,所以在DB1 中要为每一组电机创建数据结构。
例如第一组的数据结构定义为数据类型为UDT1 的数组“ Array[1..10] ”,符号名为“Halle_1_Motor”。
图06注意事项:在数据块中变量定义为UDT 情况下只能对实际值进行编辑。
即可以在数据块的数据视图中输入变量的当前值。
初始值“Initial Value”纵栏显示的是在定义UDT 变量时所设的初值。
只是在DB 块第一次存储时将初值作为当前值。
图07UDT 数据类型同样适用于OUT 和IN_OUT 参数,方法同上。
8 数据块DB1 的寻址及编程图 08 所示为变量定义为UDT1 类型数据结构的DB1 的编程例子。
一、基本数据类型
基本数据类型的长度不超过32位。
位(BOOL),字节(BYTE),字(WORD),双字(DOUBLE WORD),整数(INT),
双整数(DOUBLE INT),浮点数(REAL),S5TIME(SIMATIC时间),IEC时间(TIME),IEC日期(date),日计时(TIME_OF_DAY),字符(CHAR),
重点:S5TIME和IEC时间数据类型结构,二者区别
二、复杂数据类型
复杂数据类型是由其他基本数据类型组合而成的,长度超过32位的数据类型。
1.日期时间数据类型(Data_And_Time ):
2.字符串类型(String):
3.数组类型Array
4.结构(STRUCT):
5.用户定义类型(UDT):
三、参数数据类型
用于功能FC或功能块FB的数据类型
1. Pointe指针类型,6字节指针类型,传递数据块号和数据地址
2. Any指针类型,10字节指针类型,传递数据块号、数据地址、数据数量以及数据类型
艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保
用品等一系列自动化的工控产品。
如需进一步了解台达PLC、西门子PLC、施耐德plc、欧姆龙PLC的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城/。
一、S7-300初始化尽量使用window2000,Windows XP。
STEP7V52或以上版本1.2 通信1、设置通信`设置或添加PC Adapter(MPI), Property 按钮Local Connection 属性页COM 1 19200,注意一般连接到计算机的串行口1。
其他参数不需要设置,注意选择PC Adapter,不要有其他的,例如pc/ppi。
1.3 硬件组态2、新建工程在SIMATIC Manager中新建工程,也可以通过wizard向导建立。
选中右边的工程名,Insert Station SIMATIC 300。
双击Hardware,从而进入HW CONFIG窗口。
Option>Insert NEW GSE文件。
把MM420, ET200等GSD文件加入。
在hw config,如图所示,插入RAC-300机架。
选中机架第二栏,双击CPU-300>CPU313C-2DP,注意准确的编号。
默认地址2。
双击DP,选择Property按钮。
选择NEW,选择1.5MBPS,如果出现警告,可以选择187kpbs。
依次在SLOT 1,2,3位置插入其他模块。
0 电源模块S7-300DI 地址:256-263DO 地址:256-259选中DP线,然后双击ET200S,如图所示,插入ET200S.选择,依次在SLOT 1,2,3位置插入其他模块。
6ES7 138-4CA00-0AA0 PM-E DC24V6ES7 134-4GB50-0AB0 2AI I 2DMU地址I address264-2676ES7 134-4JB50-0AB0 2AI RTD地址I address268-271插入MM420选择4PKW, 2PZD (PPO1)2AX地址I address 280-283 Q address 268-271全部保存1.4 下装硬件组态并检测在SIMATIC Manager中,选择工程,选择PLC>Clear/Reset,可以清除原来的配置信息。
西门子plc中UDT数据类型的用法西门子plc中UDT数据类型的用法一、UDT是什么UDT是用户自定义数据类型。
用户有时为了便利,先创建一个udt(和创建db块一样),写好数据结构。
然后,在创建db块时,假如需要可以插入建好的udt(输入个name,类型输入udt的名字,比如udt1),假如切换到数据视图,即可看到原先创建的udt的结构了。
有时需要建立多个数据块,但数据块的结构,数据类型都是一样的,但又不能在同一个数据块中保存,这时可以先建一个UDT,通过UDT 再创建其余的几个块。
举例来说,你需要掌握10个电机,它们的属性都是基本相同的:如“正转(BOOL)”、“反转(BOOL)”、“速度(INT)”、“加速度(INT)”、“减速度(INT)”等,假如程序中你需要用到这些属性,那么你可能需要为10个电机都建立这些变量,假如是单独建立,你就需要建立10*5=50个变量;假如你用UDT来处理,那就简洁多了:先定义一个UDT,名字是MOTOR,里面添加上面所说的2个BOOL变量和3个INT变量(当然有需要可以添加其它数据类型的变量),然后建一个DB块,在里面建立10个变量M1~M10,数据类型就是MOTOR,保存后你会发觉这10个变量都包括以上的几个属性,这样你就可以直接在程序中使用了。
也就是说UDT的作用就是便利编程者的,对于程序的运行而言不是必需的.从数据类型的角度来说,UDT甚至不会被PLC直接接受.大家看西门子S7-300的程序的上传就知道了,将一个带有UDT的程序下载到PLC中,然后新建一个PLC,上传程序,在传上来的程序中你是找不到UDT的.UDT更像是对DB结构的解释!下面教大家如何在博途里使用UDT.1、在项目树中PLC数据类型中双击添加新数据类型2、对新建的数据类型重命名,如UDT3、在UDT中添加要用的变量,编译保存。
4、新建一个全局DB块-DB1,并在DB块中添加名称M1等,数据类型为"UDT",留意数据类型要与之前新建的数据类型名称相同。
PLC概述.................................................................................................................. 1一、可编程控制器的产生及定义.............................................................................. 1二、可编程控制器的分类及特点.............................................................................. 1三、可编程控制器的应用.......................................................................................... 3四、PLC控制系统的分类 ......................................................................................... 4可编程控制器原理...................................................................................................... 52.1 PLC的组成与基本结构................................................................................. 5第三章SIMATIC S7-300 PLC系统特性及硬件构成........................................... 11用户程序由组织块(OB)、功能块(FB,FC)、数据块(DB)构成.................... 13第四章编程语言.................................................................................................. 20PLC概述一、可编程控制器的产生及定义①1969年美国数字设备公司(DEC)研制出世界第一台可编程控制器,并成功地应用在美国通用汽车公司(GM)的生产线上。
欧阳家百(2021.03.07)PLC概述一、可编程控制器的产生及定义①1969年美国数字设备公司(DEC)研制出世界第一台可编程控制器,并成功地应用在美国通用汽车公司(GM)的生产线上。
但当时只能进行逻辑运算,故称为可编程逻辑控制器,简称PLC(programmable logic controller)。
②70年代后期,随着微电子技术和计算机技术的迅猛发展,使PLC从开关量的逻辑控制扩展到数字控制及生产过程控制域,真正成为一种电子计算机工业控制装置,故称为可编程控制器,简称PC(programmable controller)。
但由于PC容易与个人计算机(personal computer)相混淆,故人们仍习惯地用PLC作为可编程控制器的缩写。
③1985年国际电工委员会(IEC)对PLC的定义如下:可编程控制器是一种进行数字运算的电子系统,是专为在工业环境下的应用而设计的工业控制器,它采用了可以编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字或模拟式的输入和输出,控制各种类型机械的生产过程。
④PLC是由继电器逻辑控制系统发展而来,所以它在数学处理、顺序控制方面具有一定优势。
继电器在控制系统中主要起两种作用:(1)逻辑运算(2)弱电控制强电。
⑤PLC是集自动控制技术、计算机技术和通讯技术于一体的一种新型工业控制装置,已跃居工业自动化三大支柱(PLC、ROBOT、CAD/CAM)的首位。
二、可编程控制器的分类及特点(一)分类(1)从组成结构形式分①一体化整体式PLC②模块式结构化PLC(2)按I/O点数及内存容量分①超小型PLC②小型PLC③中型PLC④大型PLC⑤超大型PLC(3)按输出形式分①继电器输出为有触点输出方式,适用于低频大功率直流或交流负载②晶体管输出为无触点输出方式,适用于高频小功率直流负载③晶闸管输出为无触点输出方式,适用于高速大功率交流负载(二)特点①可靠性高、抗干扰能力强②编程简单、使用方便③设计、安装容易,维护工作量少④功能完善、通用性好,可实现三电一体化PLC将电控(逻辑控制)、电仪(过程控制)和电结(运动控制)这三电集于一体。
西门子S7-300PLC的数据类型西门子S7-300PLC的数据类型西门子S7-300plc的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。
一、基本数据类型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、双字(DoubleWord)相邻的两个字(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,DoubleInteger)32位整数和16位整数一样,为有符号数,最高位为符号位,1表示负数,0表示正数。
第三章西门子PLC的指令系统3.1 S7-300/400的编程语言3.1.1 PLC编程语言的国际标准IEC 61131是PLC的国际标准,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131-3广泛地应用PLC、DCS和工控机、―软件PLC‖、数控系统、RTU等产品。
定义了5种编程语言1) 指令表IL(Instruction list):西门子称为语句表STL。
2) 结构文本ST(Structured text):西门子称为结构化控制语言(SCL)。
3) 梯形图LD(Ladder diagram):西门子简称为LAD。
4) 功能块图FBD (Function block diagram):标准中称为功能方框图语言。
5) 顺序功能图SFC(Sequential function chart):对应于西门子的S7 Graph。
3.1.2 STEP 7中的编程语言梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1.顺序功能图(SFC) :STEP 7中的S7 Graph2.梯形图(LAD):直观易懂,适合于数字量逻辑控制。
―能流‖(Power flow)与程序执行的方向。
3. 语句表(STL):功能比梯形图或功能块图强。
4.功能块图(FBD):―LOGO!‖系列微型PLC使用功能块图编程。
5.结构文本(ST):STEP 7的S7 SCL(结构化控制语言)符合EN 61131-3标准。
SCL适合于复杂的公式计算、复杂的计算任务和最优化算法,或管理大量的数据等。
6.S7 HiGraph 编程语言图形编程语言S7 HiGraph 属于可选软件包,它用状态图(state graphs)来描述异步、非顺序过程的编程语言。
7.S7 CFC 编程语言可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能。
第一章 S7-300/400的基本结构1、 S7-300/400属于模块式PLC,主要由机架、CPU模块、信号模块、功能模块、接口模块、通信处理器、电源模块和编程设备(工程师、操作员站和操作屏)组成。
图1-1 PLC控制系统示意图PLC的主要生产厂家:德国的西门子(Siemens)公司,美国Rockwell公司所属的AB公司,GE-Fanuc公司,法国的施耐德(Schneider)公司,日本的三菱和欧姆龙(OMRON)公司。
PLC的工作过程表1-1 逻辑运算关系表与或非Q4.0=I0.0*I0.1 Q4.1 = I0.2+I0.3 Q4.2 =/I0.4I0.0 I0.1 Q4.0 I0.2 I0.3 Q4.1 I0.4 Q4.20 0 0 0 0 0 0 10 1 0 0 1 1 1 01 0 0 1 0 11 1 1 1 1 1在CPU模块上有存储器(用来存放系统程序、用户程序、逻辑变量和其它一些信息),包括ROM和RAM。
可通过扩展槽扩展用户RAM。
l RAM:主程序区OB1+子程序区(FB、FCB、定时中断块等)断电时由锂电池供电(几年)以免RAM 中信息丢失。
锂电池电压< 规定值,灯报警,换电池(期间靠电容充电几分钟)。
l PLC采用循环执行用户程序的方式。
OB1是用于循环处理的组织块(主程序),它可以调用别的逻辑块,或被中断程序(组织块)中断。
在起动完成后,不断地循环调用OB1,在OB1中可以调用其它逻辑块(FB, SFB, FC或SFC)。
循环程序处理过程可以被某些事件中断。
在循环程序处理过程中,CPU并不直接访问I/O模块中的输入地址区和输出地址区,而是访问CPU内部的输入/输出过程映像区。
批量输入、批量输出。
梯形图中Q4.0的线圈(称为内部线圈)―通电‖时,对应的输出过程映像位为1状态。
信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈(外部线圈)通电,其常开触点闭合,使外部负载通电工作。
如何创建和参数化UDT数据类型五篇第一篇:如何创建和参数化UDT数据类型如何创建和参数化UDT数据类型中的变量及IN,OUT,IN_OUT 参数从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。
S7程序的自定义数据类型并不能装载到S7 CPU中。
UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。
当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。
因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT的符号名来定义IN,OUT和IN_OUT 参数,因为系统将自动生成相应的地址。
下面介绍如何创建和参数化UDT类型变量的过程。
我们将以两组各十台的电机为例。
UDT1对应这些电机的所有输入变量。
步骤一:在STEP 7项目中插入自定义数据类型。
如图鼠标选中“block”文件夹并点击右键,再弹出菜单中选择命令“Insert N ew Object>Data Type”。
步骤二:在“Properties-Data Type”对话框中输入UDT1的符号名(这里以“Motor”为例)后点击OK确认。
步骤三:打开UDT1并输入相关数据类型的变量及其初始值。
下图为UDT1变量声明的例子。
步骤四:然后通过菜单命令“Insert>S7 Block>Data Block”在STEP 7项目中添加一个数据块DB1,并在“Properties-Data”属性对话框中为其定义符号名(例如此例为“Halle_Motoren”(Hall-Motors)。
点击OK确认。
步骤五:打开DB1将变量数据类型定义为UDT1(符号名“Motor”)。
如图所示:两个数组(ARRAY)变量,每组包括10个以UDT1为数据类型的变量(编号1到10)。
步骤六:选择菜单命令“View>Data View”可显示所有 DB1数据。
注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。
UDT复杂数据类型建立和UDT接口的更改方法
2014年4月7日张勇于深圳启程用户自定义数据类型(User-Defined Date Types)简称UDT,是一种特殊的数据结构,用户只需对它定义一次,定义好后就可以在用户程序中作为数据类型使用。
UDT复杂数据类型的建立(我们以三台电机的控制为例)
第一步:建立UDT,定义相关接口:
第二步:建立DB(下文建立的DB1),在DB1的接口类型中选择刚才建立的UDT:
第三步:建立FB(下文建立的FB1),定义接口,编写电机控制的相关程序:
打开FB1,定义FB1里面的接口变量:
在FB1内编写如下电机启停程序:
第一步:新建立一个FB(下文建立的FB2),把FB2
做成多重背景数据:
打开FB2,定义FB2里的接口变量(做3个电机启停的背景数据):
第五步:建立FC(下文建立的FC1),编写程序,给DB1内的数据进行赋值:
在FC内编写程序:
第六步:在OB1中,调用FB2和FC1:
OK完成
在实际设备调试中,因为我们需要对功能进行调试,依据实际的调试情况,就会出现增加或者减少接口的问题,下面为大家演示在U DT中怎么增加接口:
第一步,在UDT1中增加一个接口变量:
第二步,更改DB1的源文件:
因为接口有了变化,我们检查更新编译一下各个块
的接口
第三步,在FB1中更改相关的程序:
因为接口有了变化,我们检查更新编译一下各个块的接口
第四步,在FB2内给新接口定义参数,在FC1内给新增的接口定义实际参数:
OK完成。