Python调试串口设备Ortec 974A

news2025/1/23 5:57:18

Ortec 974A四通道100HMz计时/计数器的介绍在以下连接中: 

O​​​​​​​Ortec -- 974A 四通道100-MHz计时器/计数器_yuyuyuliang00的博客-CSDN博客

1、调试准备工作

1)一个串口服务器

根据Ortec 974A的串行通信参数,对串口服务器进行设置并且配置了串口服务器本身的局域网IP地址:

网络设置:

  •         IP配置:静态
  •         IP地址:192.168.3.30

窗口服务器工作模式:

  • 运行模式:TCP Server
  • 本地端口:4001

串口参数:

  • 波特率:9600
  • 数据位:8
  • 停止位:2:
  • 校验:none
  • 流控制:XON/XOFF
  • 使用接口:RS-232

2)一台安装了Python3的台式机

安装jupyter,在这里,我把常用的软件包都一次性安装好:

pip3  install --upgrade pip
pip3 install pyepics
pip3 install numpy
pip3 install matplot
pip3 install pyqt5
pip3 install iptyhon
pip3 install jupyter
pip3 install notebook

在Shell命令行中输入以下命令启动jupyter:

[blctrl@main-machine ~]$ ipython notebook&

用右边new菜单下的Python3选项新建一个python文档。并且点击Untitle文本将其改名为ortec974Atest。

3) 进行命令测试

在这里仅使用Ortec974A的内部触发计数功能,只测试以下10条命令:

命令       描述
CLEAR_ALL清除计数器,计数预置事件计数器和事件预置
CLEAR_COUNTERS [MASK]清除4个计数器。如果包含了MASK,清除只由这个掩码选取的计数器
SHOW_COUNTS [MASK]如果不包含掩码,显示四个计数器的内容。如果包含掩码,仅包含由掩码值使能的计数器。掩码是一个1到15之间的数值,其二进制值确定了将发送哪个计数器。
START使得974A开始计数
STOP使974A停止计数
INIT使得974A重启或者初始化。与重置或上电条件相同。
SHOW_VERSION使得974A发送显示在此974A中包含的固件版本的记录
SET_COUNT_PRESET M,N装载M(乘数)和N(指数)值到974A的预置计数功能。M是一个0和9之间的单数值,而N是一个0到7之间单数值。
ENABLE_LOCAL使974A处于本地控制模式(即是:前面板控制)。974A将仍然响应通信接口和响应来自主机的命令。
ENABLE_REMOTE使得974A完全处于主机PC控制。除了Display Test和Counter Select控制外所有前面板控制都被禁用。

对以上命令进行测试:

1、通过串口服务器连接974A

import time
import socket

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.3.30",4001))
print(s)

 2、预置内部计时5秒时间:

s.send(b"SET_COUNT_PRESET 5,1\r")
time.sleep(0.1)
s.recv(1024)

 3、使974A启动计时:

s.send(b"START\r")
time.sleep(0.1)
s.recv(1024)

 4、读取4路计时器的内容:

s.send(b"SHOW_COUNTS\r")
time.sleep(0.1)
s.recv(1024)

 5、停止974A计数:

s.send(b"STOP\r")
time.sleep(0.1)
s.recv(1024)

 6、清除974A的4路计数器:

s.send(b"CLEAR_COUNTERS\r")
time.sleep(0.1)
s.recv(1024)

7、清除计数器,计数预置事件计数器和事件预置

s.send(b"CLEAR_ALL\r")
time.sleep(0.1)
s.recv(1024)

 8、获取974A的固件版本

s.send(b"SHOW_VERSION\r")
time.sleep(0.1)
s.recv(1024)

 9、重新初始化974A

s.send(b"INIT\r")
time.sleep(1)
s.recv(1024)

10、禁用本地控制:

s.send(b"ENABLE_REMOTE\r")
time.sleep(0.1)
s.recv(1024)

11、开启本地控制:

s.send(b"ENABLE_LOCAL\r")
time.sleep(0.1)
s.recv(1024)

12、关闭套接字,断开连接

s.close()
print(s)

从以上响应格式可以看出,如果974A对设置和控制命令进行了正确响应,它会发回一个'%000000069\r'的字符串,表示命令被正确执行。查询计数器内容响应的格式是:'00000050;01499820;00000000;00000000;\r%000000069\r',四个计数器的内容之间用;分隔,第一个数值是第一个计数器以0.1秒为单位的计数,第二到四个数值是在达到第一个计数器预设值时第二到第四个计数器的计数值,末尾'%000000069\r'表示正确响应。

4)结论:

使用Jupyter调试设备,优点是能够根据需要选取需要重复执行写好的代码块进行执行,并且可以复制代码块,修改,再执行。对于理解设备和上位机之间命令和数据交换有非常大的帮助,为编写设备控制程序做充足的准备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【手撕MyBatis源码】MyBatis映射体系

文章目录 映射工具MetaObject基本功能底层结构获取属性值的流程 ResultMap结果集映射手动映射自动映射 嵌套子查询循环依赖懒加载原理内部结构Bean代理过程 联合查询和嵌套映射映射说明联合查询1对1查询映射1对多查询RowKey创建机制结果集解析流程 映射工具MetaObject 所谓映射…

【4】Midjourney常用技巧

【常用技巧】 本篇主要讲述MJ的常用技巧,围绕着一些常用指令的使用方法展开。 【版本切换】 在使用MJ时,最常用的技巧之一是版本切换。你可以在输入提示后添加"--v"加上相应的数字来实现版本切换。通常我默认使用MJ 4,偶尔会使用…

《精通特征工程》学习笔记(2):文本数据:扁平化、过滤和分块

1.元素袋:将自然文本转换为扁平向量 1.1 词袋 词袋将一个文本文档转换为一个扁平向量。之所以说这个向量是“扁平”的,是因为它 文本数据:扁平化、过滤和分块|35不包含原始文本中的任何结构。原始文本是一个单词序列&#xff0c…

【小沐学Python】Python实现绘画(海龟turtle)

文章目录 1、简介2、接口说明2.1 海龟动作2.1.1 移动和绘制2.1.2 获取海龟的状态 2.2 画笔控制2.2.1 绘图状态2.2.2 颜色控制2.2.3 填充2.2.4 更多绘图控制 2.3 TurtleScreen/Screen 方法2.3.1 窗口控制2.3.2 使用屏幕事件2.3.3 Screen 专有方法 3、示例测试3.1 Turtle star3.2…

[starrocks BE] 启动报错问题记录

文章目录 一、一句话描述二、问题表象1. starrocks_be的启动现象:2. starrocks_fe的启动现象 一、一句话描述 starrocks部署在没有AVX2指令集的机器上导致部署失败,解决方式更换支持AVX2指令集的机器。 官方说明: 二、问题表象 starrocks所…

Rocket面试(五)Rocketmq发生流量控制的情况有哪些?

在使用rocketmq过程中总能看见一下异常 [TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 206ms, size of queue: 5这是因为Rocketmq出发了流量控制。 触发流量控制就是为了防止Broker压力过大挂掉。主要分为Broker流控,Consu…

全志V3S嵌入式驱动开发(开发环境再升级)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们陆陆续续开发了差不多有10个驱动,涉及到网口、串口、音频和视频等几个方面。但是整个开发的效率还是比较低的。每次开发调试的…

【MySQL 数据库】8、视图

目录 一、什么是视图二、视图语法三、检查选项(1) cascaded(级联)(2) local 四、视图的作用五、视图案例 一、什么是视图 视图(View)是一种虚拟存在的表视图中的数据并不在数据库中真实存在行和列数据来自定义视图的查询中使用的…

一棵有点自律的树——搜索二叉树

文章目录 💐专栏导读💐文章导读🌷搜索二叉树概念🌷二叉搜索树的构建🌺查找操作🌺插入操作🌺删除操作🌺遍历操作☘️测试 🏵️拓展——递归实现🍃递归查找&…

数据结构与算法·第9章【查找】

概念 关键字: 是数据元素(或记录)中某个数据项的值,用以标识(识别)一个数据元素(或记录)。若此关键字可以识别唯一的一个记录,则称之谓“主关键字”。若此关键字能识别…

2.3 利用MyBatis实现关联查询

一、创建数据库表 1、创建教师表 执行SQL语句,创建教师表t_teacher CREATE TABLE t_teacher ( t_id int(11) NOT NULL AUTO_INCREMENT, t_name varchar(20) DEFAULT NULL, PRIMARY KEY (t_id) ) ENGINEInnoDB AUTO_INCREMENT4 DEFAULT CHARSETutf8mb4;执行SQL语句…

使用OpenFlow和Ryu控制器实现网络交换机的软件定义网络(SDN)控制

使用OpenFlow和Ryu控制器实现网络交换机的软件定义网络(SDN)控制 (1)环境介绍 硬件环境:系统最低要求为2个CPU 、2 GB内存。 拓扑介绍:云平台具体安装拓扑如图5-4所示。 图5-4 云平台安装拓扑 搭建云平…

使用pipreqs生成requirements文件,并在服务器(矩池云)上通过requirements文件安装环境采坑记录

目录 问题描述问题1:问题2:发现问题问题解决 问题3:问题4:问题5:解决方案 关键!!!正常安装成功的操作流程备注1.我为何不在vscode的终端中装pipreqs包?2.在vscode终端中输…

Spring Cloud构建微服务架构:服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包…

面了一个来华为要22K的人,啥都不会,还不如找个应届生来代替···

最近有个在华为的朋友跟我分享了他面试招人的过程,感觉华为还是挺难进的。面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试。 其实,第一轮的电话面试除…

ASEMI代理英飞凌TLE7244SL功率电子开关,TLE7244SL参数

编辑-Z TLE7244SL参数描述: 型号:TLE7244SL 数字电源电压VDD:3.0 V ~ 5.5 V 模拟电源电压VDDA:4.5 V ~ 5.5 V 每个通道在Tj150C时的最大导通状态电阻RDS(ON,max):1.7 Ω 额定负载电流IL (nom):290 mA…

Nginx【反向代理负载均衡动静分离】--中

Nginx【反向代理负载均衡动静分离】–中 负载均衡-配置实例 示意图 负载均衡配置-思路分析/图解 示意图 负载均衡配置规则 负载均衡就是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快 linux 下有Nginx、LVS、Haproxy 等等服务可…

在Apifox中,使用后置脚本显示响应结果reponse中的base64图片

背景 在使用Apifox去请求有图片的接口时,我想要请求成功的同时,可以显示出来图片,这个时候就开始百度找官方文档。最终发现可以使用后置脚本显示reponse中的图片。 方案 如下图所示,接口请求成功后,返回的json结构为…

【Spring Boot 初识丨四】主应用类

上一篇讲了 Spring Boot 的启动器 本篇来讲一讲 主程序类 Main Application Class 及注解 Spring Boot 初识: 【Spring Boot 初识丨一】入门实战 【Spring Boot 初识丨二】maven 【Spring Boot 初识丨三】starter 主程序类 一、定义二、注解2.1 SpringBootApplicati…

秋招指南(菜狗版)-Java前/后端开发方向

期末考试结束,菜的人还在享受假期,即将进大厂的已经在学习了(狗头) 作为经受去年秋招摧残的老学姐,给大家带来一些秋招学习的小经验,希望可以帮助大家避免一些求职路上的坑,能快速顺利地找到心仪…