上升沿和下降沿在我们开发上位机时使用率非常高,常见于消息触发、脉冲归档等。但是在C#中没有类似PLC中的上升沿、下降沿那样的指令,需要我们自己编码来实现。

首先我们创建一个用于生成上升沿和下降沿的类上升沿,命名为“GetPN”。

上升沿_上升星座怎么算_上升星座查询对照表

然后输入以下代码:

namespace Test{    class GetPN    {        bool _P = false;        bool _N = false;
public bool P(bool Value) { if (Value && !_P) { _P = true; return true; }
if (!Value) _P = false;
return false; }
public bool N(bool Value) { if (!Value && _N) { _N = false; return true; }
if (Value) _N = true; return false; } }}

代码逻辑比较简单,基本就是以前300/400时代SCL上升沿和下降沿逻辑的翻版。下面以一个简单的例子说明下这个类如何使用。首先声明并实例化,然后在线程中调用里面的GetP或者GetN方法即可。

bool testSignal = false;private void Form1_Load(object sender, EventArgs e){    Task.Run(th);        }
private void th(){    GetPN pn = new GetPN();    while (true)    {        if (pn.P(testSignal))        {            this.Invoke(new Action(() => this.Text = "已捕获到上升沿"));        }
        if (pn.N(testSignal))        {            this.Invoke(new Action(() => this.Text = "已捕获到下降沿"));        }    } }
private void button1_Click(object sender, EventArgs e){ testSignal = true; }
private void button2_Click(object sender, EventArgs e){    testSignal = false;}

在上面的例子中,我们分别用2个按钮模拟信号的置位和复位操作,然后在线程中调用GetP和GetN方法分别捕捉上升沿和下降沿。当捕捉到信号变化以后使用窗体上的标题文本进行提示。

上升沿_上升星座查询对照表_上升星座怎么算

获取上升沿下降沿的类使用非常广泛,我们的很多控件中都有这种应用。

上升星座查询对照表_上升沿_上升星座怎么算

HwLib(慧兰博)技术团队专注于高端自动化技术上升沿,如果您对我们的技术教程感兴趣的话,可以X宝上搜索店铺“hwlib”或者“慧兰博”

上升星座怎么算_上升沿_上升星座查询对照表

关于HwLib(慧兰博)技术团队的更多信息:

HwLib(慧兰博)技术团队技术资料:

或者

提取码:1234

END

往期导读

HwLib(慧兰博)公众号

专注于工业自动化高端编程应用

HwLib(慧兰博)微信号

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注