【PLC学习六】PLC编程必备技能 您所在的位置:网站首页 plc中映射的含义 【PLC学习六】PLC编程必备技能

【PLC学习六】PLC编程必备技能

2024-05-31 05:52| 来源: 网络整理| 查看: 265

【PLC学习六】PLC编程必备技能——数字量输出与输入映射

文章目录 【PLC学习六】PLC编程必备技能——数字量输出与输入映射前言一、S7-1200PLC以太网通信二、S7-1200间接寻址1.数组间接寻址2.AT变量寻址(AT覆盖参数)3.Slice变量寻址 三、AT变量寻址(实例)四、终极映射

前言 毕业之前,在学校训练各类编程技能时,仅仅关注了程序本身,并未关注软件程序与硬件的连接。一般情况下,如单片机等,软硬件的通讯由通讯线连接通讯模块即可完成。 但是,在实际工业应用中,通讯是一个十分复杂的模块。本文将讲述PLC中,如何实现数字量输出与输入的映射。

提示:以下是本篇文章正文内容,下面案例可供参考

一、S7-1200PLC以太网通信

S7-1200PLC本体上集成了一个PROFINET通信口,支持以太网和基于TCP/IP的通信标准。支持的协议如下所示:

TCPISO on TCPS7通信(服务器端) 二、S7-1200间接寻址 数组间接寻址AT变量寻址Slice变量寻址 1.数组间接寻址

数组间接寻址通常有这么几种

DB 中数组,或者块接口、Static、Temp 的数组字符串字符间接寻址I、Q 的数组FB 多重背景的数组DB_ANY 的数组 2.AT变量寻址(AT覆盖参数)

S7-1200 要访问声明参数内的数据区域,可以通过附加声明来覆盖所声明的参数。这样可以选择对不同数据类型的已声明参数进行寻址, 例如,可以使用 Bool 的 Array 对 Word 数据类型参数的各个位寻址。 在这里插入图片描述

3.Slice变量寻址

通过 **slice(片段访问)**方式,可以选择所声明变量中的特定寻址区域;可以实现从单个位到变量级别的符号访问;片段访问不能寻址常量。 slice 方式支持这2种方式的块:可标准访问的块、可优化访问的块。

三、AT变量寻址(实例) 创建一个FC块,并将FC块命名为MAPIN(映射输入),并在“块接口”中创建TEMP变量;创建第一个TEMP变量,命名为TEMP1,数据类型选为DWORD;在TEMP1的下一行,将数据类型设置为AT;此时,TEMP中会出现一个新参数,TEMP2,数据类型为BOOL;将TEMP2这个参数的数据类型修改成 Array[0…15] of Bool ,并编译该 FC 块,可以看到参数 TEMP1和参数TEMP2 的偏移量都是 0.0,这表示参数 TEMP1和参数TEMP2 是相同地址,只是以不同的数据类型显示,如图 1 所示。 AT变量寻址 其中参数TEMP2是 参数 TEMP1的 AT 覆盖参数。 (注:对于 S7-1200 中的 FC 使用 AT,覆盖参数和被覆盖参数的数据长度必须相同。) 提示:在映像输入FC块中,所列数据长度为32位,是因为TEMP1的数据类型为DW,是32位:

映射输入代码如下(示例):

#Temp2[0]:=#INPUT0_0; #Temp2[0]:=#INPUT0_1; ... ... #Temp2[31]:=#INPUT3_7; #OUTPUT:=#Temp1;

映射输出代码如下(示例):

#Temp1:=#INPUT; #OUTPUT0_0:=#Temp2[0]; #OUTPUT0_1:=#Temp2[1]; ... ... #OUTPUT3_7:=#Temp2[31];

由以上程序,可以看出AT覆盖参数的用法。在输入映射中,让输出的值被TEMP1的值覆盖。在输出映射中,让TEMP1被输入映射覆盖。 达成#OUTPUT:=#Temp1:=#INPUT,综上,#OUTPUT=#INPUT,完成了输入与输出间的映射。

备注

**FC调用的格式是**

"FC块名称"(输入形参:=实参,输出形参=>实参,输入输出形参:=实参...) 返回值:=“FC块名称”(输入形参:=实参,输出形参=>实参,输入输出形参:=实参...) FC调用需要确保所有形参都有对应实参。如果没有参数的FC也需要有括号。

四、终极映射

将数字量的输入与输出地址,在新的FC块中,赋值给“映射输入”和“映射输出”FC块,实现最终的数字量输入与输出映射。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有