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

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


前言

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

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

一、S7-1200PLC以太网通信

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

  1. TCP
  2. ISO on TCP
  3. S7通信(服务器端)

二、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变量寻址(实例)

  1. 创建一个FC块,并将FC块命名为MAPIN(映射输入),并在“块接口”中创建TEMP变量;
  2. 创建第一个TEMP变量,命名为TEMP1,数据类型选为DWORD;
  3. 在TEMP1的下一行,将数据类型设置为AT;
  4. 此时,TEMP中会出现一个新参数,TEMP2,数据类型为BOOL;
  5. 将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块,实现最终的数字量输入与输出映射。

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PLC编程模拟输入程序的编写是指根据实际应用中需要接入的模拟输入设备,使用PLC编程软件对PLC进行编程,以将模拟输入信号转换为数字信号,并进行相应的处理和控制。 首先,需要在PLC编程软件中创建一个新的程序,并选择适当的模拟输入模块配置。然后,根据实际接入的模拟输入设备的信号类型和范围设置对应的输入参数。这些参数包括输入信号类型(例如电流、电压、温度等)、输入范围(最小值和最大值)、单位选择等。 接下来,根据实际需求,可以进行一些数据处理和转换操作。例如,可以进行比例放大、滤波、线性化等操作,以便将模拟输入信号转换为与实际物理相对应的数字。 在程序中还可以设置一些报警和保护功能。通过设置输入信号的阈值,以及与该信号相关的报警输出和保护控制逻辑,可以在输入信号超出或低于设定的范围时触发相应的报警和保护措施。 最后,使用PLC编程软件中的仿真功能进行仿真测试,确保程序的逻辑和功能正确无误。该过程可以通过模拟输入信号,并观察对应的输出信号是否正确响应来完成。 需要注意的是,不同的PLC编程软件和不同的PLC品牌可能有一些细节上的差异。因此,在编写模拟输入程序时,需要根据具体的PLC型号和软件版本,了解对应的编程规范和函数库,以确保程序的正确性和可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值