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

    文章

    397

    浏览量

    38516
  • 设备
    +关注

    关注

    2

    文章

    4172

    浏览量

    69298
  • ESDA
    +关注

    关注

    0

    文章

    27

    浏览量

    7446
  • 开发板
    +关注

    关注

    25

    文章

    4437

    浏览量

    94085
收藏 人收藏

    评论

    相关推荐

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

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

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

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

    IO链路设备收发器CECE4503数据手册

    电子发烧友网站提供《IO链路设备收发器CECE4503数据手册.pdf》资料免费下载
    发表于 01-14 11:16 0次下载
    <b class='flag-5'>IO</b>链路<b class='flag-5'>设备</b>收发器CECE4503数据手册

    用于现场总线设备的瑞萨IO-Link解决方案

    介绍用于现场总线设备的瑞萨IO-Link解决方案,为实现工业自动化做出贡献。
    的头像 发表于 01-11 12:23 647次阅读
    用于现场总线<b class='flag-5'>设备</b>的瑞萨<b class='flag-5'>IO</b>-Link解决方案

    采集Profinet IO从站设备数据转modbus方案

    通过vfbox网关实现Profinet IO协议转换成modbus协议,连接scada系统或者设备。此应用方案操作简单,不需要编程,轻松实现设备之间的互联互通。
    的头像 发表于 12-05 09:20 254次阅读
    采集Profinet <b class='flag-5'>IO</b>从站<b class='flag-5'>设备</b>数据转modbus方案

    西门子博图GET_NAME读取IO设备或DP从站的名称

    “GET_NAME”指令用于读取 IO 设备或 DP 从站的名称。该名称将显示在网络视图和 IO 设备或 DP 从站的属性中。在以下截图中,以 IO
    的头像 发表于 11-15 12:29 1381次阅读
    西门子博图GET_NAME读取<b class='flag-5'>IO</b><b class='flag-5'>设备</b>或DP从站的名称

    博途:PROFINET IO 系统中的节点创建方法

    在某些情况下,不用插入可移动存储介质(例如 MMC)或者不用 PG 就可以更换 IO 设备。为此可通过以太网机制分析各个 IO 设备IO
    发表于 10-27 11:25 352次阅读
    博途:PROFINET <b class='flag-5'>IO</b> 系统中的<b class='flag-5'>节点</b>创建方法

    kafka相关命令详解

    kafka常用命令详解
    的头像 发表于 10-20 11:34 359次阅读

    IO设备接入MQTT

    随着物联网的迅速发展,越来越多的IO设备需要与云平台进行通信,以实现远程监控和控制。本文将基于EsDA开发套件快速实现将IO设备接入MQTT的应用开发,帮助用户实现智能互联。简介在物联
    的头像 发表于 09-28 08:26 467次阅读
    <b class='flag-5'>IO</b><b class='flag-5'>设备</b>接入MQTT

    如何读取 ET 200SP PROFINET IO 设备的站名称

    “Get_Name”指令读取 PROFINET IO 设备、PROFIBUS 从站或 AS-i slave 的名称。设备名称将显示在网络视图和 IO
    的头像 发表于 08-08 10:11 1125次阅读
    如何读取 ET 200SP PROFINET <b class='flag-5'>IO</b> <b class='flag-5'>设备</b>的站名称

    iTOP-STM32MP157开发板设备树查找节点的of函数

    设备都是以节点的形式“挂”到设备树上的,因此要想获取这个设备的其他属性信息,必须先获取到这个 设备节点
    发表于 06-14 10:11

    【EsDA应用】蓝牙服务端节点详解

    和业务处理,有兴趣的可以跳转链接【EsDA应用】蓝牙客户端节点详解去查看。本文主要基于MPC_ZC1开发板以及可将节点进行拖拽连接的图形化设计工具AWFlowDesi
    的头像 发表于 05-31 09:46 511次阅读
    【EsDA应用】蓝牙服务端<b class='flag-5'>节点</b><b class='flag-5'>详解</b>

    【EsDA应用】蓝牙服务端节点详解

    的相关节点和业务处理,有兴趣的可以跳转链接 【EsDA应用】蓝牙客户端节点详解 去查看。 本文主要基于MPC_ZC1开发板以及可将节点进行拖拽连接的图形化设计工具AWFlow Desi
    的头像 发表于 05-25 00:10 394次阅读
    【EsDA应用】蓝牙服务端<b class='flag-5'>节点</b><b class='flag-5'>详解</b>

    博途系统变量-GET_NAME:读取IO设备或DP从站的名称

    GET_NAME”指令用于读取 IO 设备或 DP 从站的名称。该名称将显示在网络视图和 IO 设备或 DP 从站的属性中。在以下截图中,以 IO
    的头像 发表于 05-24 09:21 2446次阅读
    博途系统变量-GET_NAME:读取<b class='flag-5'>IO</b><b class='flag-5'>设备</b>或DP从站的名称

    PROFINET IO 设备读取模块的状态信息

    “ModuleStates”指令可用来读取 PROFINET IO 设备或 PROFIBUS DP 从站的模块状态信息。
    的头像 发表于 05-19 14:19 2212次阅读
    PROFINET <b class='flag-5'>IO</b> <b class='flag-5'>设备</b>读取模块的状态信息