0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

常用IO设备节点详解

ZLG致远电子 2023-09-14 08:27 次阅读

本文介绍如何通过EsDA开发套件,快速熟悉常用IO设备节点及其使用方法,大大缩短了用户对EsDA的学习开发周期。

本文选用EPC6450-AWI开发板,以及图形化设计工具AWFlow Designer进行测试讲解,对常用IO设备节点和使用方法进行详细说明。

42aa604e-5295-11ee-a20b-92fbcf53809c.jpg  常用节点简介本文将对gpio引脚电平操作的gpio节点,gpio_in节点,gpio_out节点三个节点,对led灯操作的led节点,对按键操作的button节点,对adc通道采集的adc节点进行详细描述。1. gpio节点1.1 查看帮助文档

在搜索框中输入gpio关键字即可检索出gpio节点,点击gpio节点即可看到右边弹出gpio节点的帮助文档界面,里面包含节点的简介以及属性,输入和输出的相关参数介绍。用户可以在此操作下找寻相关节点的帮助文档去了解节点的相关参数。

42b2ce50-5295-11ee-a20b-92fbcf53809c.png

此节点将属性值“GPIO序号”配置为GPIO输入模式。因该节点为filter类型节点,所以有1输入1输出,当本节点输入值msg.payload不为0时,则读取属性值“GPIO序号”的电平值作为输出;若输入值msg.payload为0则不将读取到的引脚电平值进行输出传递,此时无输出。1.2 属性

  • 名称:可用于索引查找本节点;
  • 显示名称:用于画布上显示的名称,仅做显示;
  • GPIO序号:对需要操作的GPIO引脚序号进行选定,此引脚序号与目标板的丝印一一对应;
  • 模式:设置GPIO序号引脚的输入模式,float是浮空输入,pull up是输入上拉,pull down是输入下拉。

1.3 输入

msg.payload :不为0则表示读取属性值“GPIO序号”的电平值,为0则不将读取到的电平值进行输出传递给下一个节点。

所有节点的输入参数都是由上级节点的输出提供的,且通常为msg对象携带的对应属性参数。

1.4 输出

msg.payload:输出的数据,需要注意的是只有当输入的msg.payload不为0时才有输出,0表示读取属性值“GPIO序号”的电平值为低电平,1表示读取到的是高电平。

1.5 加载demo示例

在相关节点的帮助文档旁边有一个示例,点击后则可以看到对应的节点demo示例,选中查看的demo示例,并加载到项目中即可查看。42d7a8ec-5295-11ee-a20b-92fbcf53809c.png1.6 自定义demo1.6.1 绘制流图添加timer,fscript,gpio,fscript节点到画布中并连线如下图。

42e76f16-5295-11ee-a20b-92fbcf53809c.png

1.6.2 节点配置timer节点周期性的触发fscript节点,需要更改周期性的时长可双击timer节点,修改属性值“定时周期”即可。而fscript节点作为gpio的上级节点,那么传递的则是gpio的输入值,在此希望能周期性的读取电平值,所以msg.payload的值不为0即可,gpio的上级节点fscript的内容:

msg.payload = 666

双击gpio节点,选择目标板对应丝印的GPIO序号,在此选择的模式是浮空输入如下图。
42f721fe-5295-11ee-a20b-92fbcf53809c.png

gpio节点的消费者fscript节点作为输出,直接打印gpio节点的输出值显示电平值即可,gpio节点的消费者fscript节点内容如下:

print("read gpio level value is "+msg.payload)

将此流图下载到目标板后,连接调试串口后,打开串口助手,改变UTX5的电平值可得到如下显示:

4302e00c-5295-11ee-a20b-92fbcf53809c.png2. gpio_in节点

将GPIO配置为输入模式,并轮询读取电平状态且将其作为输出值。与gpio节点功能类似,都是配置为输入模式且可以将读取到的电平值作为输出,只不过gpio_in是不间断循环的输出,并且gpio节点还加了一个是否开启读电平的输入。

2.1 属性

名称:可用于索引查找本节点;

显示名称:用于画布上显示的名称,仅做显示;

GPIO序号:对需要操作的GPIO引脚序号进行选定,此引脚序号与目标板的丝印一一对应;

模式:设置GPIO序号引脚的输入模式,float是浮空输入,pull up是输入上拉,pull down是输入下拉;

轮询:是否开启以设定值去轮询的读取GPIO序号的电平状态,off则关闭用设定值去轮询读取电平状态而使用默认的50ms去轮询读取,on则以设定值去轮询读取电平状态值;

轮询间隔(ms):以设定值去轮询读取电平状态,设置生效的前提是轮询需为on。

2.2 输出

  • msg.payload:属性值“GPIO序号”的电平状态值,0为低电平,1为高电平;

msg.topic:固定输出gpio_in字符串。

pump类型节点无输入,相关类型节点介绍可查看AWFlow节点开发指南进行更多的了解。

2.3 使用方法

2.3.1 绘制流图

添加timer,fscript,log节点到画布中并连接如下图所示:

430eaaa4-5295-11ee-a20b-92fbcf53809c.png

2.3.2 节点配置双击gpio_in节点,选择目标板对应丝印的GPIO序号,在此选择的模式是浮空输入,开启以设定值2000ms去轮询读取gpio电平状态值如下图所示。4324debe-5295-11ee-a20b-92fbcf53809c.png

gpio_in节点的消费者节点fscript是对gpio_in的输出参数进行输出显示,内容如下:

msg.payload = "read gpio status is " + msg.payload + "\n" + "msg.topic:"+msg.topic

用log节点对上一级节点的msg.payload输出到调试窗口进行显示。

2.3.3 下载验证

将此流图以下载运行的模式下载到目标板后,可在AWFlow Designer的调试窗口查看到如下信息

433bebe0-5295-11ee-a20b-92fbcf53809c.png

3. gpio_out节点

配置为GPIO输出,将输入的msg.payload的值设置为GPIO的电平值。

3.1 属性

名称:可用于索引查找本节点;

显示名称:用于画布上显示的名称,仅做显示;

GPIO序号:对需要操作的GPIO引脚序号进行选定,此引脚序号与目标板的丝印一一对应;

模式:设置GPIO输出模式,push pull为推挽输出模式,open drain为开漏输出模式;

GPIO初始状态:设置GPIO初始输出的状态值,0为低电平,1为高电平。

3.2 输入

msg.payload:设置属性GPIO序号的输出电平值,0为低电平,1为高电平,2为电平翻转。

sink类型节点无输出。

3.3 使用方法

3.3.1 绘制流图添加timer,fscript,gpio_out节点到画布中,并连线如下图所示。

43588084-5295-11ee-a20b-92fbcf53809c.png

3.3.2 节点配置timer节点周期性定时触发fscript节点,这里的timer的属性定时周期值配置为3000ms,而fscript节点作为gpio_out节点的上一级节点,主要内容是设置gpio_out的输入参数,内容如下:

if(((msg.payload/1000)%2)==0) { msg.payload = 0 print("low level\n")}else { msg.payload = 1 print("high level\n")}

双击gpio_out节点,选择目标板对应丝印的GPIO序号,在此选择的模式是推挽输出。

436d67a6-5295-11ee-a20b-92fbcf53809c.png

3.3.3 下载验证

下载流图到目标板后,可以用万用表去查询GPIO序号对应的引脚电平值可知,电平是周期性的翻转。

4. led节点

该节点主要有两种模式,一种是设置led灯的状态,一种是设置快闪灯。

4.1 属性

名称:可用于索引查找本节点;

显示名称:用于画布上显示的名称,仅做显示;

led设备名称:Led设备名称,可根据不同的目标板对应丝印进行设备选择;

初始状态:对选中的led的设备设置初始状态值,0为led灯的初始状态为灭,1为led灯的初始状态为亮。

4.2 输入

  • msg.device_name:led设备名称,将与属性值“led设备名称”进行对比,若不同则该节点功能无效;
  • msg.payload:模式一,设置led的状态值。0为关闭led灯,1为开启led灯,2为翻转led灯;
  • msg.timer:模式二,快闪灯。该输入参数为设置定时闪烁的时间,单位ms,若为0则关闭快闪,大于0则设置闪烁间隔时间;

msg.fast_blink:模式二,快闪灯。设置定时快闪的次数,在定时闪烁周期中的快闪次数,输入参数msg.timer与msg.fast_blink需同步设置才能生效。

sink类型节点无输出。

4.3 设置灯状态示例

4.3.1 绘制流图

添加timer,fscript,led节点到画布中并连线如下图所示:

438233d4-5295-11ee-a20b-92fbcf53809c.png

4.3.2 节点配置

timer节点周期性的去设置led灯的状态值,fscript节点作为led的上一级节点,其内容主要是对led设备状态的设置:

msg.payload = 2

双击led节点,在属性“led设备名称”的下拉框中选择对应丝印的LED设备如下:

438f3980-5295-11ee-a20b-92fbcf53809c.png

4.3.3 下载验证下载流图后可看到RUN灯周期性的3s翻转一次。

4.4 快闪灯示例

4.4.1 绘制流图

添加gpio_in,fscript,led节点到画布,并连线如下图所示:

439ea79e-5295-11ee-a20b-92fbcf53809c.png

4.4.2 节点配置

双击gpio_in节点,本节点主要作用就是运行流图后只触发一次fscript节点,所以要开启定时轮询,且轮询间隔需设置尽量大一点如下图所示:

43b4004e-5295-11ee-a20b-92fbcf53809c.png

fscript节点作为led的上一级节点,主要内容是led相关的输入参数,内容如下:

if(msg.payload == 0) { msg.timer = 2000 msg.device_name = "/dev/led_run" msg.fast_blink = 2 print("fast led\n")}

双击led节点,在属性“led设备名称”的下拉框中选择对应丝印的LED设备如下:

43c84e6e-5295-11ee-a20b-92fbcf53809c.png

4.4.3 下载验证

下载流图到目标板后,对gpio_in节点配置的引脚进行电平置低,5s内切换到高电平后即可看到led灯2s闪烁2次的实验现象。

5. button节点5.1 属性

  • 名称:可用于索引查找本节点;
  • 显示名称:用于画布上显示的名称,仅做显示;
  • 对应的GPIO编号:对需要操作的GPIO引脚序号进行选定,此引脚序号与目标板的丝印一一对应;
  • 触发条件:按钮按下时的触发条件,fall表示按钮按下的触发条件为GPIO下降沿触发,up表示按钮按下的触发条件为GPIO上升沿触发。

5.2 输出msg.payload :按钮按下状态输出为on,松开状态输出为off,在初始化完成以及按钮状态发生改变的时候会输出当前的状态。

pump类型节点没有输入。

5.3 使用方法

5.3.1 绘制流图

添加button,fscript,led节点到画布中并连线如下图所示:

43d9ae7a-5295-11ee-a20b-92fbcf53809c.png

5.3.2 节点配置

双击button节点,对需要操作的引脚进行选择如下:43e879c8-5295-11ee-a20b-92fbcf53809c.png

fscript节点作为button的消费者节点,内容是button的相关输出参数:

if(msg.payload == "on"){ msg.payload = 1}else if(msg.payload == "off") { msg.payload = 0}

双击led节点,选择闪灯的led设备。

5.3.3 下载验证

下载流图后,对button配置的按钮进行按下和松开的操作可以看到相应led灯的效果。

6. adc节点

6.1 属性

  • 名称:可用于索引查找本节点;
  • 显示名称:用于画布上显示的名称,仅做显示;
  • 通道号:进行采样的ADC通道号,可根据不同的目标板对应丝印进行设备选择;
  • 采集次数:ADC 通道对ADC值的采集次数;
  • 采样率:ADC通道号采样率(每秒ADC的采样次数)。

6.2 输出

  • msg.payload:通道采样的最终电压值(mv);
  • msg.vref:基准电压;
  • msg.bits:ADC通道位数;

msg.rate:ADC通道采样率。

pump类型节点没有输入。

6.3 使用方法

6.3.1 绘制流图

添加adc,fscript,log节点到画布中并连线。

43f68cde-5295-11ee-a20b-92fbcf53809c.png

6.3.2 节点配置

双击adc选择对应丝印的ADC设备如下:

4406d788-5295-11ee-a20b-92fbcf53809c.png

fscript节点作为adc的消费者节点,其内容主要是adc的相关输出参数:

msg.payload = "adc value is "+msg.payload

log节点对上一级fscript节点进行输出显示。6.3.3 下载流图

下载流图后,对adc配置的通道号进行不同电压值的采样结果如下:

44198ac2-5295-11ee-a20b-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IO
    IO
    +关注

    关注

    0

    文章

    448

    浏览量

    39145
  • 设备
    +关注

    关注

    2

    文章

    4504

    浏览量

    70621
  • ESDA
    +关注

    关注

    0

    文章

    28

    浏览量

    7508
  • 开发板
    +关注

    关注

    25

    文章

    5038

    浏览量

    97403
收藏 人收藏

    评论

    相关推荐

    λ-IO:存储计算下的IO栈设计

    动机和背景    存储计算存储资源的充分利用。IO栈是管理存储器的的基本组件,包括设备驱动、块接口层、文件系统,目前一些用户空间IO库(如SPDK)有效降低了延迟,但是io栈仍然不可或
    的头像 发表于 12-02 10:35 196次阅读
    λ-<b class='flag-5'>IO</b>:存储计算下的<b class='flag-5'>IO</b>栈设计

    详解kubectl常用命令

    详解kubectl常用命令
    的头像 发表于 11-05 15:39 211次阅读
    <b class='flag-5'>详解</b>kubectl<b class='flag-5'>常用</b>命令

    io口和串口的区别 单片机有多少个io

    IO口和串口的区别 IO口,即输入输出端口(Input/Output Port),是单片机或其他微控制器与外部设备之间进行数据交换的接口。它们通常用于控制外部
    的头像 发表于 10-06 10:06 1363次阅读

    EthernetIP IO从站设备数据 转IEC61850项目案例

    使用多个逻辑设备和逻辑节点的方法... 6 7 从设备的的EDS文件获取参数信息... 8 8 案例总结... 10 [1 案例]()说明 设置网关采集EthernetIP IO
    的头像 发表于 08-15 11:24 332次阅读
    EthernetIP <b class='flag-5'>IO</b>从站<b class='flag-5'>设备</b>数据 转IEC61850项目案例

    节点电压法流入节点电流怎么判断正负

    节点电压法(Node Voltage Method)是一种在电路分析中常用的方法,用于求解电路中各节点的电压。在这种方法中,我们通常选择一个参考节点(通常是接地点),然后求解其他
    的头像 发表于 08-06 17:24 2116次阅读

    节点电压法的实质是什么

    节点电压法(Node Voltage Method)是一种在电路分析中常用的方法,主要用于求解线性电路中的电压和电流。它基于基尔霍夫电流定律(KCL)和欧姆定律,通过建立节点电压方程来求解电路中
    的头像 发表于 08-06 17:08 946次阅读

    初识IO-Link及IO-Link设备软件协议栈

    IO-Link概述什么是IO-LinkIO-Link是一种用于工业自动化领域的数字通信协议,最早由西门子提出,现在已经成为了国际标准,旨在实现工业设备和控制系统之间的连接和通信。它允许传感器、执行器
    的头像 发表于 07-08 16:41 8106次阅读
    初识<b class='flag-5'>IO</b>-Link及<b class='flag-5'>IO</b>-Link<b class='flag-5'>设备</b>软件协议栈

    初识IO-Link及IO-Link设备软件协议栈

    亚信IO-Link设备软件协议栈是基于亚信电子AXM-IOLS IO-Link设备评估板设计的,搭载意法半导体 STM32F469AI微控制器,并在STM32CubeIDE开发环境中
    的头像 发表于 07-08 13:55 2469次阅读
    初识<b class='flag-5'>IO</b>-Link及<b class='flag-5'>IO</b>-Link<b class='flag-5'>设备</b>软件协议栈

    用于器件节点的SN65HVD10x IO-link PHY数据表

    电子发烧友网站提供《用于器件节点的SN65HVD10x IO-link PHY数据表.pdf》资料免费下载
    发表于 07-02 09:33 0次下载
    用于器件<b class='flag-5'>节点</b>的SN65HVD10x <b class='flag-5'>IO</b>-link PHY数据表

    IO数据采集网关(RTU)的功能和作用

    连接通信数据采集是关键是建设标准化的网络使设备联网通信,但并不是所有的工业协议都能满足当今自动化所需的数据交换和智能要求。而IO数据采集可以实现设备之间进行智能双向数据通信,构建节点
    的头像 发表于 06-17 11:03 404次阅读
    <b class='flag-5'>IO</b>数据采集网关(RTU)的功能和作用

    什么是工业控制网络节点?常用节点有哪些

    工业控制网络节点是指在工业控制网络中,用于实现数据采集、处理、传输和控制等功能的设备。它们是工业控制系统中的重要组成部分,对于保证工业生产的稳定性、可靠性和高效性具有重要意义。 一、工业控制网络节点
    的头像 发表于 06-11 10:36 1099次阅读

    EtherCAT IO的接线方法和流程是怎样的?

    EtherCAT IO的接线方法和流程是怎样的? EtherCAT是一种用于实时以太网通信的开放式通信协议,具有低延迟和高带宽的优势。 EtherCAT IO是EtherCAT网络中连接到IO
    的头像 发表于 02-02 16:57 2012次阅读

    远程IO中继器的工作原理 远程IO中继器关键特性及应用

    远程IO中继器的工作原理 远程IO中继器关键特性及应用 远程IO中继器是一种常用的工业自动化设备,用于实现不同位置之间的远程信号传输和远程控
    的头像 发表于 02-02 14:11 932次阅读

    亚信电子推出全新IO-Link设备软件协议栈解决方案

    亚信电子提供完整的EtherCAT从站转IO-Link主站网关和IO-Link设备软件协议栈解决方案,使客户能够将最新的IO-Link智能传感器和执行器等
    的头像 发表于 01-16 11:24 587次阅读
    亚信电子推出全新<b class='flag-5'>IO</b>-Link<b class='flag-5'>设备</b>软件协议栈解决方案

    激光焊接行业的智能化选择钡铼分布式IO

    和稳定性。 钡铼威廉希尔官方网站 分布式IO系统具有良好的扩展性和灵活性。随着激光焊接威廉希尔官方网站 的发展,对于设备控制的需求也在不断变化。钡铼威廉希尔官方网站 的分布式IO系统可以通过简单地增加或减少节点来适应不同的生产
    的头像 发表于 01-05 10:59 425次阅读
    激光焊接行业的智能化选择钡铼分布式<b class='flag-5'>IO</b>