第三节:C#工业控制编程基础–避障模块实验
文章目录
- 第三节:C#工业控制编程基础--避障模块实验
- 一、实验目的:
- 二、实验内容:
- 三、实验步骤:
- 1.打开Visual Studio 2013,新建窗体应用程序项目,配置好dll文件。
- 2.在窗体中放入一个Timer控件,两个Button控件,两个Label控件,一个TextBox控件以及一个PictureBox控件。并修改他们的Name属性和Text属性。
- 3.双击“退出”按钮进入编程界面,在public partial class Form1 : Form内引入本次要用的函数:OpenUsbV12()、CloseUsbV12()、DiReadV12()。并在最上方using列写入using System.Runtime.InteropServices;
- 4.在“退出”按钮点击事件内写入开发板关闭函数和程序退出函数,代码如图3。
- 5.双击“开始采集”按钮,在该按钮点击事件前定义一个整形变量w,在点击事件内写入一个定义一个整形变量x并写入一个if判断:
- 6.将避障模块插入采集卡中如图5所示位置。
- 7.在Timer控件事件下定义一个int变量y,两个byte变量i,a。其中,将a赋值为8。写入单向开关量输入函数DiReadV12()。(函数具体用法可参考开发板说明书),将读取到的开关量值存入变量i中。接着将变量i和a进行按位与运算,并将结果赋值给变量y。
- 8.将开发板连接电脑,运行程序,用手遮挡避障模块,效果如图7。
- 9.最后关闭电源,断开开发板。
- 四、实验结果:
一、实验目的:
了解避障模块的使用。
二、实验内容:
用C#显示避障模块状态。
三、实验步骤:
1.打开Visual Studio 2013,新建窗体应用程序项目,配置好dll文件。
2.在窗体中放入一个Timer控件,两个Button控件,两个Label控件,一个TextBox控件以及一个PictureBox控件。并修改他们的Name属性和Text属性。
如图1:
3.双击“退出”按钮进入编程界面,在public partial class Form1 : Form内引入本次要用的函数:OpenUsbV12()、CloseUsbV12()、DiReadV12()。并在最上方using列写入using System.Runtime.InteropServices;
代码如图2:
4.在“退出”按钮点击事件内写入开发板关闭函数和程序退出函数,代码如图3。
![图3](https://img-blog.csdnimg.cn/20210414092702203.png ‘图3")
5.双击“开始采集”按钮,在该按钮点击事件前定义一个整形变量w,在点击事件内写入一个定义一个整形变量x并写入一个if判断:
当w值为0:将w赋值为1,用函数OpenUsbV12()打开开发板并将其函数值赋值给变量x,同时将Timer控件的Enabled属性设置为true。将按钮的Text属性设置为“暂停”,并再写入一个if判断:当x值等于0,用MessageBox显示“启动成功”,反之“启动失败”。
当w值不为0时:将w重新赋值为0,将timer1的Enabled属性设置为false,关闭开发板,将按钮的Text属性设置为“继续”。代码如图4。
6.将避障模块插入采集卡中如图5所示位置。
7.在Timer控件事件下定义一个int变量y,两个byte变量i,a。其中,将a赋值为8。写入单向开关量输入函数DiReadV12()。(函数具体用法可参考开发板说明书),将读取到的开关量值存入变量i中。接着将变量i和a进行按位与运算,并将结果赋值给变量y。
由于在计算机中,数值是以二进制进行运算,所以a的值8转化为八位二进制即是00001000,当避障模块感应到有障碍物,函数DiReadV12()会输出11110000的8位无符号整形数值,平时则是11111000,将a和i进行按位与运算,当结果为0,则表示有障碍阻挡。
当位与运算后y值为0时,设置PictureBox控件显示警示图片,并在TextBox控件上显示“危险”。
当位与运算后y值为0时,清空PictureBox控件显示,并在TextBox控件上显示“安全”。
代码如图6。