该节目标编写一个网口调试VI。
上一章是 串口,这章介绍网口的写法。
一、网口硬件
1.1、上位机网口
1.2、网口线
由线缆和水晶头组成,现在一般用5类和超5类的网线
1.3、接线方式
忽略,这里加上这点为了提醒一个硬件和上位机连接,一般都是有硬件接口,线缆和接线方式。
二、网口助手
假设说上位机网口另一端连接了网口仪器,为了保证上位机端和仪器端的正常连接,需要用网口助手来测试。
网口需要设置的参数有:
- 模式:服务端/客户端
- IP地址:本机IP地址有127.0.0.1,localhost
- 端口
三、LabVIEW测试
在网口助手能正常通讯的情况下,可以认为两端网口和连线都是正常的。这个时候就可以用LabVIEW来测试了。不想写程序的话,可以直接用LabVIEW例程里的"简单网口"。
- 事先要知道仪器的网口作为服务器还是客户端,IP地址,以及端口号是多少
- 如果仪器作为服务器,对应的,我们就作为客户端去测试,反之,我们就作为服务端去测试
- LabVIEW服务器就是侦听,客户端就是连接
1、菜单栏"帮助"→点击"查找范例"2、选择"网络"→选择"TCP&UDP"→选择"Simple TCP.lvproj"
- 这个例程开始涉及到了LabVIEW的程序项目管理,不过这里可以仅认为是两个VI放在同一个项目,其实彼此之间没有任何依赖关系。
- 仪器一般是作为服务端,所以此处我们作为客户端来演示,对应的就是项目中的Simple TCP - Client.vi
3、打开"Simple TCP - Client"
- 程序框图如下:
- 网口仪器还是遵循①初始化,②读/写,③释放这四个操作
①初始化:“打开TCP连接”,地址就是IP地址,这里的127.0.0.1是本机IP,端口号为6340
②写入:“写入TCP数据”,图标是从左往右,直接将需要写入的字符串接到对应的输入端,就能写入
读取:“读取TCP数据”,要设置读取字节和超时时间,以及模式(默认标准)。
这里涉及到一个超时的概念,意思是在读取的时候,等待服务端返回数据,但是服务端由于种种原因不一定会返回数据,这样的话,就不能无限期地等待。那么就需要一个期限,如果在这个期限内,如果服务器还不返回数据,软件就不再等待的,这个期限就是超时。
超时一般都会在等待数据(读取)的时候会用到,在LabVIEW中超时端口一般-1就是永不超时,如果是有大于-1的值,就是确切的超时时间。
③释放:“关闭TCP连接”,释放掉TCP资源,一般程序里释放资源都会接消除错误,因为在释放后这个资源已经不再使用,也不能再被捕获到了,如果报错弹窗会导致程序卡顿。所以一般写法是这样
四、LabVIEW编写客户端网口助手
上一章在"简易串口"的基础下修改为串口助手的,不用在程序框图中一个个VI选取出来。
实际上如果要从程序框图选中对应的VI:①提前知道在哪个功能列表里面,②搜索
- 功能列表
比较常用的是以下这几个
2、搜索:可直接输入第三节提到的"打开TCP连接",就能搜索到对应的VI,然后,双击就能跳转到对应页面。
界面如下:
1、事件和循环结构
2、添加"“连接”:值改变"事件。用于触发"连接"按钮的点击事件,在点击连接后会进行一次网口连接
- 由于事件的其他分支也需要用连接好的TCPID(句柄),所以在这里要加上移位寄存器
3、添加"“发送”:值改变"事件。用于触发"发送"按钮的点击事件,在点击连接后会进行一次写入网口
3、修改超时分支
- 这里字符串输出用了字符串控件的方法(追加字符串),项目上会出现很多需要用到控件引用的场合,这里介绍控件引用的方法:
①右键控件->选中"创建"->选中"引用"
②程序框图中,右键空白→选中"应用程序控制"→"调用节点"
③两者连接上后,左键点击"调用节点"→选中"追加字符串"
4、添加"前面板关闭?"事件,用于用户点击右上角关闭后,关闭串口后退出循环
至此,网口助手功能已经完成。