LabVIEW论坛
直播中

风之子0917

6年用户 31经验值
擅长:可编程逻辑 模拟技术 测量仪表
私信 关注
[问答]

数字量输出

  1. 问题:
    是关于两个数字量输出的:第一个数字量:周期是3秒,高电平1.5秒,低点电平1.5秒。第二个数字量:周期是3秒,高电平0.5秒,低电平2.5秒。两个数字量同时触发。
    我用LABVIEW写了一个程序,第一个数字量好写,第二个数字量有些难度,求指点
    微信图片_20240405162255.jpg微信图片_20240405162526.jpg

回帖(2)

他在笑

2024-4-8 18:04:49
为了实现第二个数字量的周期性输出,可以使用定时器和状态机的方法来实现。

首先,在LabVIEW中创建一个定时器,设置其周期为3秒。可以使用LabVIEW的定时器函数(如Wait(ms))来实现。

然后,使用一个状态机来控制数字量的输出。状态机可以使用一个Case结构来实现。根据定时器的时间,将Case结构放入两个分支:一个用于控制高电平状态,另一个用于控制低电平状态。在高电平分支中,将数字量设置为高电平状态并持续0.5秒,然后切换到低电平分支;在低电平分支中,将数字量设置为低电平状态并持续2.5秒,然后切换到高电平分支。

通过这种方式,可以实现第二个数字量按照指定的周期、高电平和低电平时间输出。

以下是示意图和伪代码:

```
// 创建定时器,周期为3秒
// 使用LabVIEW定时器函数来实现

while (程序运行) {
    // 检查定时器是否溢出(周期完成)
    // 如果定时器溢出,则重置定时器

    // 根据定时器的时间进行状态切换
    case (状态选择){
        case 高电平状态:
            // 设置数字量为高电平状态
            // 持续0.5秒

            // 如果定时器溢出,则切换到低电平状态
            // 否则继续保持高电平状态
            break;
        
        case 低电平状态:
            // 设置数字量为低电平状态
            // 持续2.5秒

            // 如果定时器溢出,则切换到高电平状态
            // 否则继续保持低电平状态
            break;
    }
}
```

以上是一个基本的思路和伪代码,具体实现还需要结合LabVIEW的相关函数和编程技巧来实现。希望对你有所帮助。
举报

冯凯

2024-4-9 11:08:02
试试?
2 举报
  • 风之子0917: 能传具体程序不
  • 冯凯 回复 风之子0917: 这个程序我没保存。对着函数名和图标复刻一下吧,主要用到:取余,移位寄存器,以及“逐点”里面的函数,对着图标连线就行

更多回帖

发帖
×
20
完善资料,
赚取积分