Python3简单实现与Java的Hutool库SM2的加解密互通 因业务需求,需要与某平台接口对接。平台是Java基于Hutool库实现的SM2加密解密,研究了下SM2的加解密算法,网上找的资料,都是说SM2【椭圆曲线】 公钥长【x,y分量 64字节】,私钥短【32字节】;而平台给的Hutool生成的密钥对,私钥反而比公钥更长,直接用Pyhton做SM2加解密,难以实现数据的互通。后多方查找资料,几经测试终于弄成,其他编程语言亦可参考,现分享如下。
Python3通过串口服务器读取设备Modbus数据【modbus_rtu_over_tcp】 工业采集设备支持ModbusRtu 协议,通讯端口为232串口 或485接口,上位机连接采集终端,不方便走线【串口线 、485总线】,利用现有网络,通过串口服务器进行网络连采集接。
Python3开发 自动清理旧文件 清理任务设置 json数组格式 灵活方便,可设置待清理的目录,及该目录下文件需要留存的天数,超过则自动删除;可根据需要制定多项不同的任务。考虑到通用性,选用python3 实现,可跨平台,Windows Linux 服务器均能使用。
C# 简单实现OPC DA Client 转 Modbus TCP Server【浮点数为例】 很多工控环境,数据集中在OPC服务器上, 终端设备需要opc_da采集,很困难,即便终端是Windows系统,OPC的环境配置也及其麻烦,而终端若非Windows系统,基本上不太可能实现。现有能找见的转换工具要么付费;要么破解的老版本,很多bug。靠人不如靠自己,还是自己写的更方便。OpcNetApi + NModbus4 + Newtonsoft。
C#实现海康威视设备自动批量实时校时 1、编写类库,关键部分:登录、读设备时间、设备校时using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;using System.Text;public class HIK_NVR{ public int m_lUserID = -1; public string ip; public ushort port = 800
Python3 通过串口提供Modbus服务 含浮点数处理 1、引入依赖库import modbus_tk.defines as cstfrom modbus_tk import modbus_rtuimport serialimport timeimport struct2、建立MODBUS服务 PORT = 'COM5' server = modbus_rtu.RtuServer(serial.Serial(PORT)) try: server.start() slave_1 = server.ad
Python3 读取Modbus数据 含浮点数处理 Python3 读取Modbus数据 含浮点数处理1、引入依赖库2、Modbus操作类型的说明3、读取保持寄存器4、读到的数据转换为浮点型5、上完整代码6、程序测试1、引入依赖库#!/usr/bin/python3import modbus_tk.modbus_tcp as mtimport modbus_tk.defines as mdimport timeimport datetimeimport struct2、Modbus操作类型的说明# READ_COILS = 1 读线圈#
利用Python简单实现环保212协议数据解码为字典结果【HJ212_2017协议的拆包解码】 1、直接上代码#!/usr/bin/python3def decode(data): DIC_DATA={} DIC_DATA['HEAD']=data[0:2] DIC_DATA['LENGTH']=data[2:6] DIC_DATA['CRC']=data[-6:-2] DIC_DATA['DATA']={} DIC_DATA['DATA']['CP']={} _d0=data[6:-6].split('&
利用Python简单实现环保212协议客户端【HJ212_2017协议的封包发送】 1、文件组成:config.json——配置信息HJ212_2017_Helper.py——功能函数HJ212_2017_CLIENT.py——客户端发送2、配置文件(JSON格式){ "server":{ "ip":"127.0.0.1", "port":8640 }, "data":{ "ST":"21", "CN":"2011", "PW":"123456", "MN":"010000A8900016F000169DC0", "Flag":"4"
C#简单连接Oracle数据库 1、添加依赖库引用:2、编写帮助类库using Oracle.ManagedDataAccess.Client;using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;namespace DB_Helper4Oracle{ public class oracle_helper { public string ip
C#简单实现实现TCP服务器多线程数据接收 1、引入依赖库,无需第三方。using System;using System.Collections.Generic;using System.Data;using System.IO;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Windows.Forms;2、变量声明 /// <summary>