首页天道酬勤python上位机开发,欧姆龙plc与上位机串口通讯

python上位机开发,欧姆龙plc与上位机串口通讯

张世龙 05-12 11:21 64次浏览

2021年的第一次更新,比以前早了一点!

在前两期中,我们讨论了pyserial的使用方法、基本的上层接口以及与API的联动,今天我们将完成以下代码。 1

使用编码规范

因为前两期是用于基础展示的,所以代码是自由写的。 但是,从软件的开发和使用周期来看,代码的可读性和可维护性很重要,因为在实际开发阶段,编码花费的时间很少,大部分时间都用于代码的调试、浏览和优化升级。 所以,在编码之前,可以熟读Python常用的编码规范PEP8,在提高代码可读性的同时,拉近与其他开发人员的距离。

自动导出UI文件的py文件不严格符合PEP8,因此为了确保样式的一致性,添加到我的UI代码文件中的代码将保留自动代码的样式。 另外,为了快速区分不同类型的组件,通常将前缀规定如下:

- Text输入显示:前缀TXT_

- Button组件:前缀B_

- Label组件:前缀L_

- list构件:前缀LW

类、函数和变量的命名约定可以引用如下:

2

使用类

接触过c、C#等语言的伙伴应该不知道类的概念,类提供了将数据和功能结合起来的方法。 对于串行通信来说,我们把常用的操作(初始化、可扫描序列号、数据发送接收等)封装在一个类中,通过继承和派生,便于在不同的项目中移植使用,提高代码复用率,徒劳地制造车轮

3

使用线程

上次接收函数直接创建了主程序调用的死循环,导致页面更新不充分。 本节介绍如何创建线程,并使线程能够自己管理数据接收轮询。

线程(Thread )也称为轻量级进程,是操作系统能够进行运算调度的最小单元,它通过傲慢的豌豆在进程中,是进程的实际工作单元。 线程本身没有系统资源,但可以与属于同一进程的其他线程共享该进程拥有的所有资源。 以我们的上位机为例,上位机软件本身可以看作是一个过程。 该页面的更新和响应以及接下来所说的串行接收可以看作是同一上位机进程的线程。

在此,在成功打开串行端口后,将接收操作放入线程中,检测到用户单击了“关闭串行端口”并退出。

由于页面会动态刷新,因此还可以创建周期性运行的线程,以用于更新内容可变的组件。

4

使用队列

我们上位机的功能比较简单,其实不用FIFO队列。 但是,如果要执行复杂的功能,例如需要进一步处理传入的数据,或者多个线程需要发送数据,则建议使用队列进行数据管理存储。 队列的本质是先进先出的数据结构,封装在python标准库中的线程安全队列简化了多线程的信息传递。

现在,将接收到的数据排队。

5

数据接收十六进制显示

您可以选择在Hex中显示接收,也可以在ASCII中显示接收,但这里将介绍如何与radio button配合使用。 radio button具有一个名为isChecked的属性,用于指示是否选定。 此外,可以使用hex函数将数字转换为十六进制数字,并将其显示为以0x开头的字符串。 如果要显示与当前整数对应的ASCII字符,请使用chr ()函数

6

总结

本文介绍了几种提高代码可读性和可维护性、代码优化的方法,但只限于篇幅,不涉及发送数据格式的转换。 作为放学后的一点工作,进一步完善这个上位机。

码字不简单。 称赞后,获取源代码的方法如下所示。

python求质数的算法,python求质数1到100