版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章S7-1200PLC的编程规范和程序设计7.4数据寻址7.5编程指令7.3S7-1200PLC的编程元件7.1S7-1200PLC的编程语言7.2S7-1200PLC的数据类型与存储区域7.6典型PLC程序设计7.1S7-1200PLC的编程语言7.1S7-1200PLC的编程语言编程语言是PLC核心组件,各厂家提供梯形图、功能块图、语句表等多样语言以适配不同用户需求。虽同厂家不同编程语言程序可转换,但跨厂家同类型程序不可互换,限制了PLC的开放性、可移植性和互换性。为此,IEC制定了IEC61131-3国际标准,整合各厂家语言优势,形成工业控制系统通用编程标准,推动PLC编程语言全球化规范。目前,多数PLC厂商已遵循此标准。IEC61131-3涵盖三种图形化语言(梯形图、功能块图、顺序功能图)及两种文本语言(指令表、结构化文本)。S7-1200PLC支持梯形图、功能块图和结构化控制语言(SCL)。鉴于不同语言特点及应用场景差异,以及国内用户对LAD的偏好和SCL在数据处理方面的优势,本教材将重点基于LAD和SCL介绍S7-1200PLC指令与程序。7.2S7-1200PLC的数据类型与
存储区域7.2.1数据类型S7-1200PLC中数值数据类型包括位、位序列、整数、浮点数及时间等,见表7-1。7.2.1数据类型举例:在PLC中创建一个DB块,并将属性设置为标准DB块,在DB1块中创建字符串“string1”“string2”和字符“char1”,并赋予起始值,如图7-1所示。数据类型为String的字符串“string1”,没有定义具体字符数量。通过仿真查看DB块偏移地址可见该字符串占用256字节;查看字符串第一个字节,最多存储字符总数量为254个,第二个字节有效字符数量为7个(simatic),其余位置填充空字符“$00”,填满254个字符,如图7-2所示。7.2.2数据存储区1.存储区的分类S7-1200的内部存储区分为装载存储区、工作存储区和保持性存储区三种。CPU的M存储区、全局数据块中的数据可以使用保持性存储区存储。(1)M存储区用户可以在“PLC变量”标签页中,单击“保持”按钮来设定M存储区的保持范围,为从MB0开始的连续字节数,例如设置10,则保持范围为MB0~MB9共10个字节,无法设置多个保持范围,如图7-3所示。(2)全局数据块全局数据块也分为优化和标准两种。使用优化的全局数据块能够最优化地利用CPU内部的数据存储区,可以分别指定其内部每个变量的保存特性。使用标准的全局数据块,只能对其整体指定一种保持特性。新建的数据块默认为优化的全局数据块,可以在数据块右键属性中修改,将“优化的块访问”选择框取消,就设置为标准
的块访问,如图7-4所示。打开数据块,通过勾选“保持”设置变量的保持特性,如图7-5所示。7.2.2数据存储区2.存储区的编址格式存储器是由许多存储单元组成的,每个存储单元都有唯一的地址,可以依据存储器地址来存取数据。S7-1200PLC的存储单元按字节进行编址,数据区存储器地址的表示格式有位、字节、字、双字地址格式。数据区存储器区域的字节、字、双字地址格式由区域标识符、数据长度以及该字节、字或双字的起始字节地址构成。例如,IB2表示输入字节,由I2.0~I2.7这8位组成。图7-6中,用MB100、MW100、MD100分别表示字节、字、双字的地址。MW100表示由MB100、MB101相邻的两个字节组成的一个字,MD100表示由MB100~MB103四个字节组成的一个双字,100为起始字节地址。7.3S7-1200PLC的编程元件7.3S7-1200PLC的编程元件PLC的数据区存储器区域在系统软件的管理下,划分出若干小区,并将这些小区赋予不同的功能,由此组成了各种内部元件,这些内部元件就是PLC的编程元件。软继电器的特点如下:软继电器是看不见、摸不着的,没有实际的物理触点。每个软继电器可提供无限多个常开触点和常闭触点,可放在同一程序的任何地方,即其触点可以无限次地使用。体积小、功耗低、寿命长。S7-1200PLC提供的编程元件地址区分类及表示符号见表7-2。寻址的有效范围见表5-1。7.4数据寻址7.4.1I/O寻址S7-1200CPU提供两种I/O访问方法:过程映像访问和直接物理访问,如图7-7所示。过程映像访问是使用地址标识符I/Q访问CPU的过程映像区。采用过程映像访问,可以保证在一个扫描周期内的信号一致性。直接物理访问是在I/O地址后附加“:P”,直接访问物理输入、输出点。对于实时性要求高的输入、输出地址访问可以采用直接物理访问。不论过程映像访问还是直接物理访问,都可以按位、字节、字或双字进行I/O访问。过程映像是可读可写的。对过程映像I区的写访问可能会造成扫描周期内I区信号的不一致现象。I:P为只读访问,使用I:P访问不会影响存储在过程映像I区的相应值。Q:P为只写访问,使用Q:P访问会同时更新过程映像Q区的相应值。7.4.2存储区寻址1.全局DB访问设置数据块访问方式的设置,参考图7-4。不同访问方式的DB,内部变量的访问也不同,如图7-8所示。2.背景DB访问设置背景DB的访问方式由其所属的FB的访问方式决定:如果FB为标准访问,则其背景DB是标准DB;如果FB为优化访问,则其背景DB是优化DB。FB的访问方式在其“属性”中设置,如图7-9所示,选中“优化的块访问”则该FB块是优化访问的。7.4.2存储区寻址3.L区访问设置S7-1200CPU的所有OB都是优化访问的,FB/FC的访问方式在其“属性”中设置,如图7-9所示。优化访问的程序块中的L区变量只能使用符号访问;标准访问的FB/FC中L区变量可以使用符号访问和绝对地址访问。SCL语言编辑的程序块中,只能使用符号访问。4.标准DB和优化DB对比在TIA博途软件中,为S7-1200CPU添加一个DB时,其默认属性为优化DB,标准DB与优化DB的整体对比,见表7-3。S7-1200CPU中,标准DB与优化的DB在PLC中按照图7-10所示方式存储。在优化DB中地址偏移不可见,大的数据类型在块的开始区域放置,小的数据类型在块的末端优化放置。7.4.3间接寻址1.普通数组间接寻址S7-1200PLC之前,比如S7-200PLC,是没有数组格式数据的,只能用寄存器存放地址,通过寄存器数据的加减改变地址,访问对应地址的数据,这就是间接寻址。S7-1200PLC从固件版本V2.0开始就支持数组下标使用变量的方式,这就意味着数组是最方便的间接寻址的方法,通过改变下标变量实现各式各样的功能。通常数组间接寻址都是使用SCL进行编程,因为这往往伴随着FOR循环方便实现。但这不意味着LAD无法实现,只是没有SCL编程方便。例如,实现将DB中整数数组“DataIn_1”中数值元素1~10和“DataIn_2”中数值元素11~20,如图7-11所示,分别送入“DataOut_1”和“DataOut_2”中。7.4.3间接寻址1.普通数组间接寻址首先定义创建函数FC1,并定义形参,如图7-12(a)所示。编写的LAD程序和SCL程序如图7-12(b)所示。在OB1中调
用FC1的程序如图7-12(c)所示。仿真结果如图7-12(d)所示。从LAD程序和SCL程序的结构可以明显看出,SCL在PLC的程序控制和数据处理上的优势。图7-12LAD和SCL编程数组寻址7.4.3间接寻址2.输入I、输出Q数组间接寻址在PLC变量表中I、Q是不能直接定义为数组的,但是从CPUV4.0固件以后,I、Q可以定义为PLC数据类型,这样在PLC数据类型中定义数组,间接使得I、Q成为数组数据类型,方便间接寻址,无须再使用PEEK指令。输入I变量定义数组步骤包括:创建PLC数据类型,如图7-13所示;添加PLC变量,如图7-14所示。定义之后,在程序中就可以对输入I进行数组寻址操作。将CPU1214C本体的起始地址I0.0的10个I点的值,分别送入DB1的10个Bool的数组的每一个元素,程序如图7-15所示。7.4.3间接寻址3.Slice访问(片段访问)Slice访问支持I/Q/M/DB等地址区,使用符号方式对操作数按位、字节、字进行访问,而无须对访问的目标地址进行定义。通常针对Byte、Word及DWord等数据类型的变量进行片段访问,此外也可以对INT、DINT等整数数据类型的变量进行片段访问。DB中变量“Variable”的数据类型是DWord,如图7-16所示,可以通过Variable.w1访问其第二字,可以通过Variable.x3访问其第四位。7.4.3间接寻址4.PEEK/PORK指令S7-1200PLC的PEEK/POKE指令,可以实现对I/O、M存储器和数据块的读取或写入。而通过POKE_BLK指令,还可以实现数据区域的复制或移动。将CPU1214C本体的起始地址I0.0的14个I点的值,分别送入DB1的14个Bool的数组的每一个元素,程序以及仿真结果如图7-17所示。本示例和图7-15所示的示例效果是一致的,采用了两种方法。使用POKE_BLK指令编写程序,将DB2.DBW0开始的10个整数值(1~10)写入MW10开始的地址中,程序以及仿真结果如图7-18所示。7.5编程指令7.5编程指令1.位逻辑运算2.定时器和计数器3.比较指令4.移动指令5.程序控制指令使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。7.5编程指令1.位逻辑运算3.比较指令4.移动指令5.程序控制指令使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。S7-1200PLC的定时器为IEC定时器,用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER的DB变量。定时器指令汇总见表7-5。S7-1200PLC的计数器和定时器一样为IEC计数器,用户程序中可以使用的计数器数量也是受CPU的存储器容量限制。S7-1200PLC的计数器包含3种计数器:加计数器(CTU)、减计数器(CTD)、加减计数器(CTUD),对于每种计数器,计数值可以是任何整数数据类型,并且需要使用每种整数对应的数据类型的DB结构或背景数据块来存储计数器数据。2.定时器和计数器7.5编程指令1.位逻辑运算2.定时器和计数器3.比较指令4.移动指令5.程序控制指令使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。比较指令主要用于数值的比较以及数据类型的比较,具体指令说明见表7-6。7.5编程指令1.位逻辑运算2.定时器和计数器3.比较指令4.移动指令5.程序控制指令使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。移动操作指令主要用于各种数据的移动、相同数据的不同排列的转换,以及实现S7-1200PLC的间接寻址功能部分的移动操作。常用的移动操作指令汇总见表7-7。7.5编程指令1.位逻辑运算2.定时器和计数器3.比较指令4.移动指令使用位逻辑运算指令,可以实现最基本的位逻辑的操作,包括常开、常闭、置位、复位、沿指令等。位逻辑运算指令汇总见表7-4。程序控制指令包含程序跳转、程序退出、SCL的主要控制语句、错误处理等指令,具体指令汇总见表7-8。5.程序控制指令7.6典型PLC程序设计7.6.1开关量逻辑控制程序设计1.确定输入、输出点2.选择S7-1200PLC的CPU型号3.输入、输出点分配4.画出PLC的输入输出接线图5.编写程序根据继电器接触器原理图的分析,自动正反转循环控制的输入点和输出点统计见表7-9。7.6.1开关量逻辑控制程序设计1.确定输入、输出点3.输入、输出点分配4.画出PLC的输入输出接线图5.编写程序选用CPU1212CDC/DC/RLY进行控制。该CPU本体集成有8个DI,6个DQ,满足需要。2.选择S7-1200PLC的CPU型号7.6.1开关量逻辑控制程序设计1.确定输入、输出点2.选择S7-1200PLC的CPU型号3.输入、输出点分配4.画出PLC的输入输出接线图5.编写程序输入、输出点分配见表7-10。7.6.1开关量逻辑控制程序设计1.确定输入、输出点2.选择S7-1200PLC的CPU型号3.输入、输出点分配5.编写程序I/O接线图如图7-19所示。4.画出PLC的输入输出接线图7.6.1开关量逻辑控制程序设计1.确定输入、输出点2.选择S7-1200PLC的CPU型号3.输入、输出点分配4.画出PLC的输入输出接线图5.编写程序在用TIAPortal软件编写程序之前,需要在“PLC变量表”里添加所用到的变量,并写上具体名称,如图7-20所示。编写的程序如图7-21所示,在变量表里
添加的输入点和输出点名称全部映射到LAD程序中,对于理解和后期维护非常方便。7.6.2模拟量控制程序设计1.数据转换模拟量数据转换原理见第5章的5.3.2节模拟量模块,用PLC程序实现时,首先需要对通道进行组态,如图7-22所示。测量类型选择是“电压”还是“电流”,本例选择电流。电流范围选择是“0~20mA”还是“4~20mA”,本例选择“0~20mA”,其他参数默认设置。与开关量相似的操作不再赘述,比如添加变量名称。其次进行程序编写,如图7-23所示。7.6.2模拟量控制程序设计2.PID控制PID功能用于对闭环过程进行控制。PID控制适用于温度、压力、流量等物理量,是工业现场中应用最为广泛的一种控制方式,其原理是对被控对象设定一个给定值,然后将实际值测量出来,并与给定值比较,将其差值送入PID控制器,PID控制器按照一定的运算规律,计算出结果,即为输出值,送到执行器进行调节,其中的P、I、D指的是比例、积分、微分,是闭环控制的一种算法。通过这些参数,可以使被控对象追随给定值变化并使系统达到稳定,自动消除各种干扰对控制过程的影响。S7-1200PLC提供的PID控制器回路数量受到CPU的工作内存及支持DB块数量限制。PID指令块与其相对应的工艺对象背景数据块组合使用,形成完整的PID控制器。PID控制器结构如图7-24所示。7.6.2模拟量控制程序设计2.PID控制以恒温控制为例进行S7-1200PLC的设置与程序设计。模拟量输入、输出处理已在数据转换中介绍,下面主要介绍PID的设置和程序设计。新建循环组织块OB30,循环时间选择默认值100ms,如图7-25所示。新建PID指令,在TIAProtal软件中使用PID功能,有两种方式添加PID的指令。方式一:通过在工艺对象中添加新对象,在弹出的“新增对象”对话框中,左侧竖列选择“PID”后,对话框中间部分对于“CompactPID”版本的选择,如图7-26所示。方式二:当程序处于编程界面时,右侧指令栏中在工艺>PID控制>CompactPID指令>版本选择,如图7-27所示。7.6.2模拟量控制程序设计2.PID控制对工艺对象进行组态,如图7-28所示,包括基本设置、过程值设置和高级设置。在基本设置中定义温度控制类型[图7-28(a)];定义PID输入、输出实际过程值来源为模拟量通道[图7-28(b)];定义过程值的转换标准[图7-28(c)];定义PID参数[图7-18(d)]。还有其他参数根据需要设置。7.6.2模拟量控制程序设计2.PID控制调用通用PID控制器PID_Compact函数,完成程序编写,如图7-29所示,写入恒温的温度值50℃。根据图7-28(b)所示写入输入、输出通道。其他参数根据需要设置。PID控制器能否正常运行,需要设置符合实际运行系统及工艺要求的参数。由于每套系统都不完全一样,所以,每套系统的控制参数也不相同。可通过参数访问方式手动调试,在调试面板中观察曲线图后修改对应的PID参数。也可使用系统提供的参数自整定功能,PID自整定是按照一定的数学算法,通过外部输入信号激励系统,并根据系统的反应方式来确定PID参数。7.6.3通信数据程序设计1.通信模块与设备通信设备端通信接口主要是RS485串口,也有CAN接口。如果是CAN接口,在具体工程应用中一般采用CAN转485串口模块,将其转换成RS485串口通信接口。RS485串口的主要通信协议为ModbusRTU。S7-1200PLC系列CPU能够扩展的串口数量有4个,本节首先介绍采用PLC通信模块和设备进行ModbusRTU通信。Modbus具有两种串行传输模式:分别为ModbusASCII和ModbusRTU。TIAPortalV13SP1版本开始,软件中提供了两个版本的ModbusRTU指令集,如图7-30所示。7.6.3通信数据程序设计1.通信模块与设备通信以某船舶主发电机控制箱的Modbus通信协议为例(图7-31)进行S7-1200PLC的设置与程序设计。7.6.3通信数据程序设计1.通信模块与设备通信首先在TIAPortal软件中进行RS485通信模块组态,如图7-32所示。组态的信息要和图7-31所示的协议一致。其次设置系统存储器,S7-1200PLC提供了系统和时钟存储器功能,为了便于后续指令使用,需要使能该功能。如图7-33所示。7.6.3通信数据程序设计1.通信模块与设备通信在OB31中拖入Modbus_Comm_Load指令和Modbus_Master指令。如图7-34所示。程序段1是初始化,定义通信模块和通信接口;程序段2是读取站点10,起始地址是30001的10个数据,并将数据存放在数据块DB4中的数组“ReadData”中;程序段3是当5s内接收不到新的数据时,将“ReadData”的数据复位为0。7.6.3通信数据程序设计1.通信模块与设备通信当ModbusRTU网络中存在多个ModbusRTU从站或一个ModbusRTU从站同时需要多个作业,例如需要读和写或者读多个区域等,则需要调用多个Modbus_Master指令,Modbus_Master指令之间需要采用轮询方式调用,并且使用相同背景数据块。如图7-35所示,用于描述两个Modbus_Master指令轮询调用的方式。7.6.3通信数据程序设计2.添加串口服务器与设备通信以图7-31所示的船舶主发电机的通信协议作为示例。首先添加一个以太网设备,如图7-36所示。添加后将以太网口连接到子网“PN/IE_1”,并设置以太网地址“192.168.0.100”,与CPU在同一局域网段中。7.6.3通信数据程序设计2.添加串口服务器与设备通信在通信指令中选择“TCON”指令,拖动到LAD程序段1中,单击“TCON”指令右上角图标“”进行组态。在“连接参数”组态窗口中选择“未指定”伙伴;设置IP地址与图7-36所示一致;建立连接数据“PLC_1_Connection_DB”;设置本地端口为“2000”,伙伴端口为“3001”,如图7-37所示。7.6.3通信数据程序设计2.添加串口服务器与设备通信创建新的DB“ModbusSend”,并在其中创建“Send_1”数组,根据Modbus标准请求格式依照图7-31的协议将数组起始值设定为“0A040000000A7176”,如图7-38所示。并在程序段2中写入“TSEND”指令的DATA接口,接收的数据同样存放在数据块DB4中的数组“ReadData”中。程序段4是当5s内接收不到新的数据时,将“ReadData”的数据复位为0,如图7-39所示。7.6.3通信数据程序设计3.与S7-1200PLC通信与S7-120
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂配电培训课件
- 网络营销师认证考试法律法规模拟试卷及答案
- 中医执业医师考试中医诊断学核心考点复习习题及答案
- 智能酒店客房安全防护措施指南
- 房地产估价师考试考点题库及答案
- 质量检测与控制技术考试冲刺练习题及答案
- 药剂学药品注册与审批流程模拟试题及答案
- 电气工程师考试高压开关设备模拟试卷及答案
- 项目管理师认证核心考点解析与习题及答案
- 工程绿色施工课件
- 2025学年保定市十校高二语文上学期期中联考试卷附答案解析
- 2024-2025学年广东省广州市天河区八年级上学期期中数学试卷(含答案)
- 2024年宁波镇海区蛟川街道办事处招聘真题
- 远景能源面试题目及答案
- GJB3206B-2022技术状态管理
- 2025年四川省行政执法资格考试题库及答案
- 2025-2030年中国氟化物分析仪项目投资可行性研究分析报告
- 2025年高中英语教师课程标准考试综合测试题及参考答案
- 养老院短住协议书(2篇)
- 2025年01月新疆交投建设管理有限责任公司面向社会公开招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解
- (高清版)DB52∕T 1284-2018 精准扶贫 易地扶贫搬迁工作管理规范
评论
0/150
提交评论