ABB原厂SPSED01
价格:999.00
ABBSPSED01◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆【厦门莫格电气自动化有限公司】【XiamenMoggetElectricAutomationCo.,Ltd】【当天顺丰发货,欢迎***验货,不要犹豫,不要徘徊,错失良机,后悔晚矣】【来电咨询:雷(女士)】【销售***请点上面↑↑↑↑↑↑↑↑↑↑】【传真:0592-6514751(请备注:雷琳收)】【邮箱:1982497648@***.com】公司主营AB、本特利、黑马、施耐德、GE、ABB【DSQC系列】ICS英维思西门子yokogawa横河霍尼韦尔福克斯波Rosemount(罗斯蒙特)德国EPRO(飞利浦)ENTEK(恩泰克)VIBRO-METER(韦伯)Yaskawa(安川)Motorola(摩托罗拉)BoschRexroth(博世力士乐)Woodward(伍德沃德)等品牌◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆全新原装现货:ABBSPSED01ABBSPSED01ABBSPSED01变频器:汇川MD380+MD380IO1[1],树莓派:3B+RS485/GPIOShieldForRPiV3.0。软件配置:修改树莓派配置:关闭蓝牙,关闭控制台,使串口专用于Modbus通讯。操作系统:Linux,编程软件:python_3.4.2,通讯软件:Modbus_tk_0.5.4,界面编程软件:pyqt53代码编制3.1配置Modbus_tk设置modbus_rtu通讯模式,设置通讯参数:9600,8N1。读取变频器参数后,需要将数据存放在内存,以便后续处理,为此导入日志文件。importserialimportmodbus_tkimportfinesascstfrommodbus_tkimportmodbus_rtuPORT="/dev/ttyAMA0"logger=modbus_tk.eate_logger('c***ole')master=modbus_rtu.RtuMaster(rial(port=PORT,baudrate=9600,bytesize=8,parity='N',stopbits=1,xonxoff=0))t_timeout(0.5)t_verbose(True)("connected")importlogging3.2分割日志文件读取的变频器运行数据存放在日志文件中,随着时间的推移,文件变得日益庞大,***后使系统瘫痪,因此,需要对日志文件进行分割,所谓分割,就是保留一部分记录,其余抛弃,达到***目的。有2种分割方法①按文件大小分割②按时间间隔分割,本例按方法②分割,每2秒分割一次,***多保留5个文件。下面的代码读取1#变频器起始地址为7000H的12个数据,存放在名称为“pzw”的日志文件中(分割后的日志文件及备份小于0.2MB),和程序文件放在同一文件夹内。(master.execute(1,AD_HOLDING_REGISTERS,28672,12))fromlogging.handlersimportTimedRotatingFileHandlerif__name__=='__main__':logFilePath='pzw'logger=logging.getLogger('')tLevel()handler=TimedRotatingFileHandler(logFilePath,when='s',interval=2,backupCount=5)formatter=logging.Formatter('%(asctime)s-%(message)s')tFormatter(formatter)logger.addHandler(handler)3.3处理日志文件为了准确获取5台变频器的参数,需要对日志文件“pzw”进行分析:2018-05-2519:42:11,200-->1-3-112-0-0-12-95-152018-05-2519:42:11,306-<-1-3-24-0-0-14-16-16-232-0-0-0-0-0-0-0-0-0-0-0-0-1-252-1-240-0-134-87-101<p="">2018-05-2519:42:11,395-(0,3600,4328,0,0,0,0,0,0,508,496,134)2018-05-2519:42:11,396-->2-3-112-0-0-12-95-602018-05-2519:42:11,485-<-2-3-24-0-0-10-140-15-127-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-135-13-102018-05-2519:42:11,527-(0,2700,3967,0,0,0,0,0,0,0,0,135)2018-05-2519:42:11,528-->3-3-112-0-0-12-94-2372018-05-2519:42:11,614-<-3-3-24-0-0-10-240-15-217-0-0-0-0-0-0-0-0-0-0-0-0-0-2-0-1-0-32-7-88<p="">2018-05-2519:42:11,655-(0,2800,4057,0,0,0,0,0,0,2,1,32)2018-05-2519:42:11,656-->4-3-112-0-0-12-95-902018-05-2519:42:11,743-<-4-3-24-0-0-13-72-12-7-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-4-33-208-137<p="">2018-05-2519:42:11,834-(0,3400,3079,0,0,0,0,0,0,0,0,1057)2018-05-2519:42:11,835-->5-3-112-0-0-12-94-1392018-05-2519:42:11,923-<-5-3-24-0-0-10-200-11-252-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-4-33-182-98<p="">2018-05-2519:42:11,965-(0,2760,3068,0,0,0,0,0,0,0,1,1057)发现:①每条记录去掉头部日期时间后,第1个字符就是变频器的站号②含有变频器参数的记录的字符数远大于其他记录,根据这2个特点,编制如下代码:withopen('pzw')asfile_object:lines=adlines()#逐行读文件,存到表lines中n=len(lines)#获取表的长度foriinrange(n):lines[i]=(lines[i])[27:]#截取表第27项到末尾,保存到表iflen(lines[i])>63and(lines[i])[0]=='1':#判断站号和是否是数据abc1=lines[i]#存放到表abc1中a1=abc1[7:]#截取表abc1第7项到末尾,保存到表a1b1=a1.split('-')#以‘-’为分隔符将字符串分割为新的表u0_00_1=str(float(int(b1[0])*256+int(b1[1]))/100)#变频器输出频率self.tText(u0_00_1+'Hz')#标签显示................u0_11_1=str((int(b1[22])*256+int(b1[23]))/4)#pt100左轴承温度self.tText(u0_11_1+'℃')iflen(lines[i])>63and(lines[i])[0]=='2':..................iflen(lines[i])>63and(lines[i])[0]=='3':..................iflen(lines[i])>63and(lines[i])[0]=='4':.................iflen(lines[i])>63and(lines[i])[0]=='5':...................................上述代码对n条记录按照①②特点逐条进行判断,***后用5个if语句,获取文件“pzw”中所有满足条件的记录,代码充分展示了python语言强大的表处理能力,是整个应用程序的核心。3.4获取变频器参数值上述矩形框内代码的作用是:对满足条件①②的记录进一步处理:抛弃前端7个字符(例1-3-24-)后余下26个字节就是变频器参数值和校验码,按表1即可编制读数程序[1表1:)
厦门莫格电气自动化有限公司
业务 QQ: 1982497648