当前位置: 首页 > news >正文

渭南哪里做网站一个服务器可以备案几个网站吗

渭南哪里做网站,一个服务器可以备案几个网站吗,app 移动网站建设,企业招聘网站大全免费使用计算器得到需要的寄存器地址 这里PLC地址是83,对应的程序16进制读取地址是53 实际上由于PLC地址从1开始#xff0c;所以这里实际地址应该是52#xff0c;因为计算机从0开始 使用网络调试助手生成报文 使用Python中的内置函数int()。以下是将人员卡号’b’3b44’转换为十…使用计算器得到需要的寄存器地址 这里PLC地址是83,对应的程序16进制读取地址是53 实际上由于PLC地址从1开始所以这里实际地址应该是52因为计算机从0开始 使用网络调试助手生成报文 使用Python中的内置函数int()。以下是将人员卡号’b’3b44’转换为十进制的示例代码 card_number 3b44 decimal_number int(card_number, 16) print(decimal_number)使用response[-4:]获取了响应数据的后4个字节作为value96。然后通过struct.unpack(‘f’, value96)[0]将4字节的二进制字符串解包为单精度浮点数并将其打印出来。 #实时电量 request bytes.fromhex(00 20 00 00 00 06 01 03 00 5F 00 02 ) client_socket.send(request) response client_socket.recv(1024)value96 response[-4:] value96 struct.unpack(f, value96)[0] value96value96*10.00 value96round(value96,2) print(实时电量 单精度浮点数: {:.2f}.format(value96))value40 是一个包含两个字节的字节串即 b’\x00\x00’,将其转换为二进制并保留8位。 以下是将字节串转换为二进制并保留8位的示例代码 value40 b\x00\x00 binary_value bin(int.from_bytes(value40, byteorderbig))[2:].zfill(8) print(状态:, binary_value)DEMO代码 #!D:/workplace/python # -*- coding: utf-8 -*- # File : main0523_04.py # Author:Romulushe # Time : 2023/5/23 10:38 # Software: PyCharm # Use: PyCharm import socket import struct import time import binasciiinterval 5 ip_address #根据实际情况自定义 port_number 502 polling_interval float(interval)def print_binary_value(value, name):binary_value bin(int.from_bytes(value, byteorderbig))[2:].zfill(8)[::-1]print(f{name}: {binary_value})with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:try:client_socket.settimeout(3)client_socket.connect((ip_address, port_number))while True:try:##电压request bytes.fromhex(00 22 00 00 00 06 01 03 00 53 00 02 )client_socket.send(request)response client_socket.recv(1024)value84 response[-4:]value84 struct.unpack(f, value84)[0]# value84 value84 * 10.00value84 round(value84, 2)print(实时电压 单精度浮点数: {:.2f}.format(value84))##电流request bytes.fromhex(00 24 00 00 00 06 01 03 00 4F 00 02 )client_socket.send(request)response client_socket.recv(1024)value80 response[-4:]value80 struct.unpack(f, value80)[0]# value84 value80 * 10.00value80 round(value80, 2)print(实时电流 单精度浮点数: {:.2f}.format(value80))##实时温度1request bytes.fromhex(00 2E 00 00 00 06 01 03 00 57 00 02 )client_socket.send(request)response client_socket.recv(1024)value88 response[-4:]value88 struct.unpack(f, value88)[0]# value88 value88 * 10.00value88 round(value88, 2)print(实时温度1 单精度浮点数: {:.2f}.format(value88))#实时温度2request bytes.fromhex(00 2C 00 00 00 06 01 03 00 5B 00 02 )client_socket.send(request)response client_socket.recv(1024)value92 response[-4:]value92 struct.unpack(f, value92)[0]# value92 value92 * 10.00value92 round(value92, 2)print(实时温度2 单精度浮点数: {:.2f}.format(value92))##车速request bytes.fromhex(00 31 00 00 00 06 01 03 00 3B 00 01 )client_socket.send(request)response client_socket.recv(1024)speed binascii.hexlify(response)[-4:]speed int(speed, 16)print(车速:, speed)# #实时电量request bytes.fromhex(00 20 00 00 00 06 01 03 00 5F 00 02 )client_socket.send(request)response client_socket.recv(1024)value96 response[-4:]value96 struct.unpack(f, value96)[0]value96value96*10.00value96round(value96,2)print(实时电量 单精度浮点数: {:.2f}.format(value96))#充放电状态#超速报警#低电量报警#温度过高1#温度过高2#00 18 00 00 00 06 01 03 00 28 00 01request bytes.fromhex(00 33 00 00 00 06 01 03 00 28 00 01 )client_socket.send(request)response client_socket.recv(1024)value40 response[-2:]value40 bin(int.from_bytes(value40, byteorderbig))[2:].zfill(8)[::-1]print(充放电状态:,value40[4])print(超速报警:, value40[0])print(低电量报警:, value40[2])print(温度1过高:, value40[3])print(温度2过高:, value40[7])#车牌号#request bytes.fromhex(00 00 00 00 00 06 01 03 00 1E 00 02 ) # 车牌号client_socket.send(request)response client_socket.recv(1024)car_num binascii.hexlify(response)[-8:-4]car_num int(car_num, 16)print(车牌号:, car_num)#人员卡号request bytes.fromhex(00 00 00 00 00 06 01 03 00 42 00 02 ) # 人员卡号client_socket.send(request)response client_socket.recv(1024)card binascii.hexlify(response)[-8:-4]card int(card, 16)print(人员卡号:, card)except socket.timeout:print(TIMEOUT ERROR: 服务器未及时响应)except Exception as e:print(CONNECT ERROR:, e)DEMO结果 E:\software\python\python.exe E:/projects/Forklift/t2.py实时电压 单精度浮点数: 48.85实时电流 单精度浮点数: 0.26实时温度1 单精度浮点数: 31.10实时温度2 单精度浮点数: 30.85车速: 0实时电量 单精度浮点数: 68.52充放电状态: 0超速报警: 0低电量报警: 0温度1过高: 0温度2过高: 0车牌号: 15172人员卡号: 10763其他地址表 附带数据库log存储的代码 #!D:/workplace/python # -*- coding: utf-8 -*- # File : main0523_04.py # Author:Romulushe # Time : 2023/5/23 10:38 # Software: PyCharm # Use: PyCharm import socket import struct import time import binascii import pymysql import os,sys,datetime,logginginterval 5 ip_address #根据实际情况自定义 port_number #根据实际情况自定义 polling_interval float(interval)base_path os.path.dirname(os.path.realpath(sys.argv[0]))def get_log_path():return os.path.join(base_path, logs)def cleanup_logs():log_path get_log_path()current_time time.time()for file_name in os.listdir(log_path):file_path os.path.join(log_path, file_name)if os.path.isfile(file_path):creation_time os.path.getctime(file_path)if current_time - creation_time (3 * 24 * 60 * 60):os.remove(file_path)def configure_logging():log_path get_log_path()os.makedirs(log_path, exist_okTrue)log_filename get_log_filename()log_file os.path.join(log_path, log_filename)logging.basicConfig(levellogging.DEBUG, format%(asctime)s - %(levelname)s - %(message)s, filenamelog_file)def get_log_filename():now datetime.datetime.now()return now.strftime(%Y-%m-%d_%H-%M.log)def create_new_log():log_path get_log_path()log_files os.listdir(log_path)if len(log_files) 20:oldest_file min(log_files)os.remove(os.path.join(log_path, oldest_file))log_filename get_log_filename()log_filepath os.path.join(log_path, log_filename)return log_filepathdef check_log_size(log_filepath):log_size os.path.getsize(log_filepath)if log_size 2 * 1024 * 1024:# 创建新的日志文件new_log_filepath create_new_log()try:shutil.move(log_filepath, new_log_filepath)return new_log_filepathexcept PermissionError:insert_log(logger, f{log_filepath} {PermissionError}, log_filepath)time.sleep(0.1)return log_filepathreturn log_filepathdef insert_log(logger, log_message, log_filepath):log_filepath check_log_size(log_filepath)# 创建文件处理器file_handler RotatingFileHandler(log_filepath, maxBytes2 * 1024 * 1024, backupCount1)file_handler.setLevel(logging.DEBUG)formatter logging.Formatter(%(asctime)s - %(levelname)s - %(message)s)file_handler.setFormatter(formatter)# 添加文件处理器到日志记录器logger.addHandler(file_handler)try:logger.debug(log_message)except PermissionError:insert_log(logger, f{log_message} {PermissionError}, log_filepath)time.sleep(0.1) # 延迟0.1秒# 移除文件处理器logger.removeHandler(file_handler) # 连接数据库 def connect_database(host, port, user, password, db_name):try:conn pymysql.connect(hosthost, portport, useruser, passwordpassword, dbdb_name)# print(成功连接到数据库)return connexcept pymysql.Error as e:insert_log(logger, fDATABASE CONNECT FAILED, log_filepath)# print(f数据库连接失败: {e})# 插入数据 def insert_data(conn, types,table_name, create_time, location_no, parameter_desc, location, param_value):try:cursor conn.cursor()sql fINSERT INTO {table_name} (TYPE, CREATE_TIME, LOCATION_NO, PARAMETER_DESC, LOCATION, PARAMVALUE) \fVALUES (%s, %s, %s, %s, %s, %s)cursor.execute(sql, (types,create_time, location_no, parameter_desc, location, param_value))conn.commit()# print(f数据插入成功: {create_time}, {parameter_desc}: {param_value})cursor.close()except pymysql.Error as e:insert_log(logger, fDATABASE INSERT DATA FAILED, log_filepath)# print(f数据插入失败: {e})with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:configure_logging()cleanup_logs()log_filepath create_new_log()logger logging.getLogger()logger.setLevel(logging.DEBUG)try:client_socket.settimeout(3)client_socket.connect((ip_address, port_number))# 连接数据库host #根据实际情况自定义port 3306user #根据实际情况自定义password #根据实际情况自定义db_name #根据实际情况自定义table_name #根据实际情况自定义try:# 连接数据库conn connect_database(host, port, user, password, db_name)except Exception as e:print(COON ERROR:,e)while True:try:types 叉车location F2堆02##电压request bytes.fromhex(00 22 00 00 00 06 01 03 00 53 00 02 )client_socket.send(request)response client_socket.recv(1024)value84 response[-4:]value84 struct.unpack(f, value84)[0]# value84 value84 * 10.00value84 round(value84, 2)print(实时电压 单精度浮点数: {:.2f}.format(value84))location_no F01-1parameter_desc 实时电压param_valuevalue84insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)##电流request bytes.fromhex(00 24 00 00 00 06 01 03 00 4F 00 02 )client_socket.send(request)response client_socket.recv(1024)value80 response[-4:]value80 struct.unpack(f, value80)[0]# value84 value80 * 10.00value80 round(value80, 2)print(实时电流 单精度浮点数: {:.2f}.format(value80))location_no F01-2parameter_desc 实时电流param_valuevalue80insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)##实时温度1request bytes.fromhex(00 2E 00 00 00 06 01 03 00 57 00 02 )client_socket.send(request)response client_socket.recv(1024)value88 response[-4:]value88 struct.unpack(f, value88)[0]# value88 value88 * 10.00value88 round(value88, 2)print(实时温度1 单精度浮点数: {:.2f}.format(value88))location_no F01-3parameter_desc 实时温度1param_value value88insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)#实时温度2request bytes.fromhex(00 2C 00 00 00 06 01 03 00 5B 00 02 )client_socket.send(request)response client_socket.recv(1024)value92 response[-4:]value92 struct.unpack(f, value92)[0]# value92 value92 * 10.00value92 round(value92, 2)print(实时温度2 单精度浮点数: {:.2f}.format(value92))location_no F01-4parameter_desc 实时温度2param_value value92insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)##车速request bytes.fromhex(00 31 00 00 00 06 01 03 00 3B 00 01 )client_socket.send(request)response client_socket.recv(1024)speed binascii.hexlify(response)[-4:]speed int(speed, 16)print(车速:, speed)location_no F01-5parameter_desc 车速param_value speedinsert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)# #实时电量request bytes.fromhex(00 20 00 00 00 06 01 03 00 5F 00 02 )client_socket.send(request)response client_socket.recv(1024)value96 response[-4:]value96 struct.unpack(f, value96)[0]value96value96*10.00value96round(value96,2)print(实时电量 单精度浮点数: {:.2f}.format(value96))location_no F01-6parameter_desc 实时电量param_value value96insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)#充放电状态#超速报警#低电量报警#温度过高1#温度过高2#00 18 00 00 00 06 01 03 00 28 00 01request bytes.fromhex(00 33 00 00 00 06 01 03 00 28 00 01 )client_socket.send(request)response client_socket.recv(1024)value40 response[-2:]value40 bin(int.from_bytes(value40, byteorderbig))[2:].zfill(8)[::-1]print(充放电状态:,value40[4])print(超速报警:, value40[0])print(低电量报警:, value40[2])print(温度1过高:, value40[3])print(温度2过高:, value40[7])location_no F01-7parameter_desc 充放电状态param_value value40[4]insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)location_no F01-8parameter_desc 超速报警param_value value40[0]insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)location_no F01-9parameter_desc 低电量报警param_value value40[2]insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)location_no F01-10parameter_desc 温度1过高param_value value40[3]insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)location_no F01-11parameter_desc 温度2过高param_value value40[7]insert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)# 车牌号#request bytes.fromhex(00 00 00 00 00 06 01 03 00 1E 00 02 ) # 车牌号client_socket.send(request)response client_socket.recv(1024)car_num binascii.hexlify(response)[-8:-4]car_num int(car_num, 16)print(车牌号:, car_num)location_no F01-12parameter_desc 车牌号param_value car_numinsert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)# 人员卡号request bytes.fromhex(00 00 00 00 00 06 01 03 00 42 00 02 ) # 人员卡号client_socket.send(request)response client_socket.recv(1024)card binascii.hexlify(response)[-8:-4]card int(card, 16)print(人员卡号:, card)location_no F01-13parameter_desc 人员卡号param_value cardinsert_data(conn, types, table_name, create_time, location_no, parameter_desc, location, param_value)except socket.timeout:print(TIMEOUT ERROR: 服务器未及时响应)except Exception as e:print(CONNECT ERROR:, e)
http://www.yutouwan.com/news/454604/

相关文章:

  • 南通快速建设网站服务企业网站模板源代码
  • 网站流量是什么意思旅游网站建设与规划
  • 公明 网站建设广州软件外包公司排名
  • 网站建设规划模板苏州关键词优化平台
  • 白云手机网站开发久久建筑网如何获取积分
  • 免费的行情软件网站下载入口No餐饮网站建设
  • 网站服务器名字网址最全的浏览器
  • 承接婚庆公司网站建设长沙制作公园仿竹围栏厂家电话
  • wordpress 侵权江门百度seo公司
  • 贵阳网站建设q479185700惠wordpress 720云
  • 做网站需要学习什么做网络网站需要三证么
  • 主流门户网站有哪些可以免费做调查问卷的网站
  • nike diy定制网站网页设计模板图片美食
  • 南昌建设银行网站为什么无法卸载wordpress
  • 怎么样做移动油光文字网站免费下载京东购物
  • 国家商标查询入口seo加盟代理
  • 赣州做网站的公司有哪家好客户端下载
  • 顺平网站建设广西桂林现在能去吗
  • 合肥网站开发哪家好前端培训机构有用吗
  • 解析域名就可以做网站资源平台
  • 中间商网站怎么做教育建设网站
  • 外贸英文网站制作听完米课做的网站
  • 南通如何制作一个网站wordpress 热门头条
  • wix做的网站能扒下来开发小程序平台
  • 从0开始做网站机械电子工程专业知识网
  • 帝国网站管理系统后台上海网站建设培训学校
  • 手机开发网站怎么做遵义在线论坛
  • 宜昌做网站的广州网站建设商
  • 重庆网站设计公司网站制作480元做网站
  • 给网站做优化刷活跃要收费吗线上小程序