国产温箱热策AH-662控制代码(TCP/IP通信模式)

2023-10-08 05:30

本文主要是介绍国产温箱热策AH-662控制代码(TCP/IP通信模式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 以下Python代码经实测验证OK,只要编写客户端(温箱端)的socket通信代码即可,服务器端(PC端)不需要。

import socketclass TempOver():'''该程序仅用于控制国产温箱热策AH-662'''def __init__(self,ipAddr):ip_port = (ipAddr, 8000)self.client = socket.socket()self.client.connect(ip_port)def decTo4hex(self,decNum):'''将十进制正负整数转换为4位十六进制数,用于设定温箱温度值'''if decNum < 0:strHexNum = hex(decNum%65536) #负数else:strHexNum = hex(decNum) #正数'''因为需要转换成4位十六进制数,加上字符串前面两个符号'0x'之后,需要补足到6位,所以,不足6位需要在前面补'0'。负数转换成十六进制之后都为6位(算上'0x'),所以,负数不需要在前面补'f'。'''strLen = len(strHexNum)strHexNewNum = '0' * (6 - strLen) + strHexNum[2:] # 去掉原字符串的前面两个符号'0x',并补'0'return strHexNewNumdef numHexToDec(self,str_HEX):'''将从温箱读出的4位十六进制读数转换成十进制数'''if str_HEX[0] == 'f':decNum = (int(str_HEX,16)-65536)/100 # 负数else:decNum = int(str_HEX,16)/100 # 正数return decNumdef tempSet(self,tempSet_DEC):'''设定温箱温度,温度范围-40°~150°,低于-40°无效'''tempSet_HEX = self.decTo4hex(tempSet_DEC * 100) # 乘100是该型号温箱的指令要求data_input = "00 00 00 00 00 06 01 06 00 02 " + tempSet_HEX  # 设定温箱温度的固定指令格式self.client.send(bytes.fromhex(data_input))self.client.recv(1024)def tempGet(self):# 发送读当前温度值的指令data_input = "00 00 00 00 00 06 01 03 00 00 00 01"self.client.send(bytes.fromhex(data_input))data_output = self.client.recv(1024)# 将温箱读取到的多字节十六进制取出代表温度读书的最后两个字节str_Temp_HEX = bytes.hex(data_output)[-4:]# 将十六进制正负数转换成十进制数tempRead = self.numHexToDec(str_Temp_HEX)print("温箱当前温度为:", tempRead, "摄氏度")return tempReaddef startRun(self):data_input = "00 00 00 00 00 06 01 05 00 00 ff 00" # 启动self.client.send(bytes.fromhex(data_input))# 启动之后清空指令缓存空间,为温箱下一次接受指令做好准备self.client.recv(1024)def stopRun(self):data_input = "00 00 00 00 00 06 01 05 00 01 ff 00"  # 停止self.client.send(bytes.fromhex(data_input))def close(self):self.client.close()if __name__ == '__main__':# 建立和温箱的连接tempIP_Addr = "192.168.52.11"tempX = TempOver(tempIP_Addr)# 启动温箱运行tempX.startRun()while True:if input("是否结束运行?(y/n):") == 'y':breakelse:# 设定温箱温度 必须大于等于-40°,小于-40°则设置失效tempSet = int(input("请输入温箱温度℃:"))if tempSet < -40:tempSet = int(input("请重新输入温箱温度℃(必须大于-40):"))tempX.tempSet(tempSet)while True:if input('是否查询当前温度?(y/n):') == 'y':# 查询温箱温度tempX.tempGet()else:break# 停止温箱运行tempX.stopRun()# 关闭温箱连接tempX.close()

串口调试软件SSCOM也可进行控制,选择端口号为“TCPClient”。

 

这篇关于国产温箱热策AH-662控制代码(TCP/IP通信模式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/163005

相关文章

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Redis Cluster模式配置

《RedisCluster模式配置》:本文主要介绍RedisCluster模式配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录分片 一、分片的本质与核心价值二、分片实现方案对比 ‌三、分片算法详解1. ‌范围分片(顺序分片)‌2. ‌哈希分片3. ‌虚

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R