pythonide运行文件_PythonTerminal

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'\x00\x00')

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_sdk\config\apps.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值