概述
1.直接使用库,模块,变量
#python内置函数、变量,模块
os,time,sys,re,csv,snap7,queue,threading,struct 官方或第三方模块
Get_info :代替help 查看类,函数,方法的doc说明
configInfo :配置文件信息 类型是dict
writeLog : 日志类封装
ToTime : 时间模块封装
xml :xml模块封装
wcf :web server clinet 封装
Global : 全局dict
dbConnect: 数据库连接封装
PLC : PLC连接封装
sdk : ICS bus通信封装
2.封装类或方法
2.1 数据库类
2.1.1 数据库连接
#配置文件只要填写有access,mysql,mssql,oracle,sqlite 的节点,框架启动时会自动连接到数据库
#如连接多个同类数据,节点名称=数据库类型+xx
例如 多个Mysql
[MysqlOne]
xx=xx
[MysqlTwo]
xx=xx
.....
#脚本内获取连接对象
connect=dbConnect['Mysql'][id]
id :为配置文件设置的id字符串
2.1.2 查询数据
1.返回数据为list
#返回 数据列表tuple 或 0 没有数据
data=connect.loadSqlList(sql)
2.返回数据为dict
#返回 数据列表ditc 或 0 没有数据
data=connect.loadSqlDict(sql)
2.1.3 执行数据
1.单条执行
#返回执行成功条数 或 0
rec=connect.execSql(sql)
2.多条执行
#返回执行成功条数 或 0
rec=connect.execSqlList(sql,values)
sql :sql语句带占位符
values: 数值列表、元组
#access占位符?,所有占位符不加'/",不管是不是字符串类型
2.2 PLC类
2.2.1 PLC连接
#配置文件,只要填写PLC节点,框架启动时会自动连接到PLC
#节点命名规则 PLCxx
例如 多个PLC
[PLCOne]
xx=xx
[PLCTwo]
xx=xx
.....
connect=PLC[plcName]
plcName: 配置文件节点名称
2.2.2 读取PLC
1.直接解析数据
#返回数据
data=connect[节点名称].S7Parser.read(address,size=None,dataType=None)
address: PLC 地址 如 I1.0|DB1.0|V1.0
size : 占用字节
dataType :数据类型
#size 和 dataType 只对占用多个字节地址有效果
例如:
读 2个字节I
data=connect[节点名称].S7Parser.read('I0',2,'bool')
>data= [[1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1]]
#默认转换 False=1,True=2
data=connect[节点名称].S7Parser.read('I0.0')
>data= 1
读 8个字节DB1.0 类型 short
data=connect[节点名称].S7Parser.read('DB1.0',8,'short')
>data=[0,0,0,0]
2.原始数据
#返回字节数组
data=connect[节点名称].S7Parser.read_v2('I0',2')
>data=bytearray(b'x00x00')
2.2.3 写入PLC
1.单个数据写入
#写入成功返回True
rec=connect[节点名称].S7Parser.write(address,data,dataType)
address: PLC 地址 如 I1.0|DB1.0|V1.0
data: 写入数据
dataType :数据类型
例如:
#写入I0的第0位为真
rec=connect[节点名称].S7Parser.write('I0.0',2,'bool')
>rec=True
2.多个连续数据写入
#写入成功返回True
rec=connect[节点名称].S7Parser.write(address,data,dataType)
address: PLC 地址 如 I1.0|DB1.0|V1.0
data: 写入数据为 list或tuple
dataType :数据类型
例如:
#写入DB1.0-DB1.3 类型 short 数据:123,234
rec=connect[节点名称].S7Parser.write('DB1.0',[123,234],'short')
>rec=True
2.3 BUS_SDK类
2.3.1 连接
#配置文件.gcl_sdkconfigapps.config.ini
框架配置文件,启用SDK,[SDK] on-off=True ,默认是开启的
connect=sdk
2.3.1 读取数据
#返回 tuple 或 None ,读取需要bus配置推送到本终端
data=sdk.get_measure(measureID)
measureID: mid
2.3.2 写入数据
#返回发送字节长度或False
data=sdk.set_measure(mid,value,q,t)
mid:measureID
value:数据
q :质量 可省略,为 1
t :时间 可省略,为当前时间
例如
遥信发送
sdk.set_measure(16777216,2)
遥测发送
sdk.set_measure(33554432,12.12)
遥文发送
sdk.set_measure(50331648,'测试遥文')
2.4 webPostRT(web查询bus3遥)
2.4.1 依赖关系
依赖,nginx,ygct_svr_fastcgi
2.4.2 post_measure(mid)
mid:单个或列表、元组
返回 dict或list
例如:1, post_measure(16777216)
>{'url': '', 'mid': 16777216, 'v': '1', 'q': 1, 't': 1545378144025, 'srcid': 604045705, 'state': 1}
2, post_measure([16777216,16777217])
>[{'url': '', 'mid': 16777216, 'v': '1', 'q': 1, 't': 1545378144025, 'srcid': 604045705, 'state': 1}, {'url': '', 'mid': 16777217, 'v': '1', 'q': 1, 't': 1545378144554, 'srcid': 25363457, 'state': 1}]
2.5 网络测试
2.5.1 ping(ip/list,number,timeout=3,ping_timeout=1)
ip/list/tuple:ip地址,地址列表或元组
number:ip数量,ip为单个地址时有效
timeout: 线程超时,默认3秒
ping_timeout:ping次数,默认1次
返回:dict
例如:
1,ping('172.31.2.1')
>{'172.31.2.1': None} 网络不通
2,ping(['172.31.2.1','172.31.2.2'])
>{'172.31.2.2': 0.002772901663497862, '172.31.2.1': None} 172.31.2.2:网络延时约28毫秒,172.31,2,1:网络不通
3,ping('172.31.2.1',5)
>{'172.31.2.2': 0.003025757229480952, '172.31.2.3': 0.005027125242928143, '172.31.2.4': 0.00476981228715978, '172.31.2.5': 0.002905407705287466, '172.31.2.1': None} 从172.31.2.1开始5个IP结果
2.5.2 pingFile(file='./config/IP_Address.csv')
file:存储IP地址的文件,默认config文件文件夹,IP_Address.csv
ip地址文件格式:
序号,IP地址,开始,设备名称,MeasureID
1,192.168.3.1,无线网关1,16777216
2,192.168.3.2,无线网关2,16777217
返回 dict
最后
以上就是无辜太阳为你收集整理的pythonide运行文件_PythonTerminal的全部内容,希望文章能够帮你解决pythonide运行文件_PythonTerminal所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复