6ES7355-1VH10-0AE0详细说明
一、前言
工作小时累计是工程机械设备一个的功能。一方面它是企业与客户之间履行保修条款的重要的数字证据;另一方面也是用户施工结算的有效工作数据。传统的小时计大都是电磁机械式的,也有用液晶式的。随着科学技术的不断发展,plc(可编程序控制器)在工程机械设备上被广泛应用。三一重工股份有限公司在所有的产品中全部使用了siemens公司的S7-200PLC,使产品的可靠性、控制精度、智能化程度、扩展性都有了很大的**。S7-200功能强大、资源丰富,用它来实现工作小时累计是可行的,传统的小时计可以省掉。
硬件组成
在现有的S7-200PLC电气系统中,不需要增加任何资源。在外部计时条件满足的情况下,CPU开始计时,计时数据通过PPI电缆传到人机界面显示。
软件设计
计时器。利用系统的特殊寄存器标志位SM0.5作为计时脉冲,接通一次(或断开一次)为1秒,用计数器累计时间,满60向前进位。
时间累计。实时的小时计是前一次的累计时间加本次的工作时间。H=h0+h1。
时间存储。用存储的方式存储时间数据到EEPROM存储器。
存储周期。存储周期长,EEPR
OM存储器使用的时间长,但计时精度低;存储周期短,计时精度高,但EEPROM存储器使用的时间短。这是一个矛盾的统一,设计时要根据系统的实际情况确定合适的存储周期,一般设计为3-5分钟。进行一次存储的操作,扫描时间会增加15-20ms。
小时计编辑功能。考虑到CPU有可能损坏的原因,更换CPU后小时计的数据会清零,小时计要有编辑的功能才更完善,当更换CPU后,通过界面可以把以前的工作数据输入到系统并存储,在这项操作时,为了使编辑的数据能够成功存储到存储区,必须在数据编辑完后,让CPU再运行一个大于存储周期的时间。当然,为了使工作数据的严谨性,小时计的编辑一定要密码进入。
存储地址更换。为了小时计的实时性和准确性,存储周期不能设计得太长,一般设计为3-5分钟。EEPROM存储器操作的安全次数为10万次,那么一个EEPROM存储器安全计时时间为100000×3/60=5000小时,一般机器的工作寿命是大于这个时间。解决这个问题的办法是在计时次数超过100000次时,更换存储地址。为了存储地址更换的方便,小时计的寻址方式采用间接寻址。
存储次数存储。为了小时计存储地址更换的需要,存储次数也要与小时计一样进行存储,并到100000次后更换地址。
地址更换的次数存储。为了小时计存储地址更换的需要,地址更换的次数也要与小时计一样进行存储,由于次数不多,不要更换地址。
程序流程简图
误差分析
小计时产生误差的原因有两方面,一个是计时误差,另一个是存储误差。
计时误差。本小时计的计时器是用系统特殊寄存器标志位SM0.5,它的状态变化周期是500ms,如果程序运行时捕捉不到状态的变化就产生误差。通过长期的监控实验,这个计时误差很小,1小时的误差不到1秒,可以忽略不计。
存储误差。机器在关机时,后一次存储还没来得及执行,产生存储误差。这个误差是一个负差,计时时间比实际的工作时间表小。每次关机的大误差是一个存储周期的时间3分钟。
经过500台机器三年时间的现场施工运行,小时计工作稳定可靠,没有出现任何故障。大的计时时间已达8000小时。
小时计计时范围宽,可达10万小时以上,可满足机器终身的计时要求。
时间数据存在EEPROM上,更可靠、更安全。
小时计数据可以密码进入进行编辑,消除了CPU损坏的后顾之忧。
可以节省一个电磁机械式的小时计,节约了一定的生产成本。
的缺陷是存在一个存储误差,这个问题是可以通过程序的改进使误差减到小。
6SL3060-4AF00-0AA0连接电缆
Siemens编程器S7-200系列用在中小型设备上的自动系统的控制单元,适用于各行各业,各种场合中的检测,监测及控制。
在这里,和大家一起来讨论S7-200几个使用方面的情况。
1.步进,伺服脉冲定位控制。
在设备的控制系统中,有关运动控制是很重要的,下面我们来看一看西门子S7-200系列PLC怎样来实现这 个功能。
确定使用哪个端口来发脉冲,如采用Q0.0发脉冲,则它的控制字为SMB67,脉冲同期为SMW68,脉 冲个数存放在SMD72中,
下面是控制字节的说明:
Q0.0 Q0.1 控制字节说明
SM67.0 SM77.0 PTO/PWM更新周期值 0=不更新,1=更新周期值
SM67.1 SM77.1 PWM更新脉冲宽度值 0=不更新,1=脉冲宽度值
SM67.2 SM77.2 PTO更新脉冲数 0=不更新,1=更新脉冲数
SM67.3 SM77.3 PTO/PWM时间基准选择 0=1微秒值,1=1毫秒值
SM67.4 SM77.4 PWM更新方法 0=异步更新,1=同步更新
SM67.5 SM77.5 PTO操作 0=单段操作,1=多段操作
SM67.6 SM77.6 PTO/PWM模式选择 0=选择PTO,1=选择PWM
SM67.7 SM77.7 PTO/PWM允许 0=禁止PTO/PWM,1=允许
这样根据以上表格,我们得出Q0.0控制字:SMB67为:10000101
采用PTO输出,微妙级周期,发脉冲的周期(也就是频率)与脉冲个数都要重新输入。10000101转化为 16进制 为85,有了控制字以后,我们来写这一段程序:
根据上面这段程序,我们知道了控制字的使用,也知道步进电机的脉冲周期与冲个数的存放位置(对 Q0.0来说是SMW68与SMD72)。当然,VW100与VD102内的数据不同的话,步进电机的转速和转动圈数就不一样。
还有一点需要说明得是:M0.0导通---PLC捕捉到上升沿发动脉冲输出后,想停止的话,只须改变端口脉冲的 控制字,再启动PLS即可,程序如下:
2.高速计数功能。
西门子S7-200系列PLC具有高速计数的功能;举一例子来谈谈高速计数的用途,我们采用普通电机来带动丝杆转动,我们想控制转动距离,怎么来解决这个问题?那么我们可在电机另一头与一编码器联接,电机转一圈,编码器也随之转一圈,根据规格发出不同的脉冲数。当然,这些脉冲数的频率比较高,PLC不能用普通的上升沿计数来取得这些脉冲,只能通过高速计数功能了。
启动高速计数功能,也要具有控制字
HSCO HSC1 描述
SM37.0 SM47.0 复位有效电平控制位 0=高电平有效, 1=低电平有效
SM37.1 SM47.1 启动有效电平控制位于 0=高电平有效, 1=低电平有效
SM37.2 SM47.2 正交计数器速率选择 0=4X计数率, 1=1X计数率
SM37.3 SM47.3 计数方向控制位 0=减计数, 1=正计数
SM37.4 SM47.4 向HSC中写入计数方向 0=不更新, 1=更新计数方向
SM37.5 SM47.5 向HSC中写入预置值 0=不更新, 1=更新预置值
SM37.6 SM47.6 向HSC中写入当前值 0=不更新, 1=更新当前值
SM37.7 SM47.7 HSC允许 0=禁止HSC, 1=允许HSC
参照上面的表格,我们选择HSC1高速计数器,控制字为SMB47,现在我们启动高速计数器HSC1,选择为增计数,更新计数方向,重新设置值,更新当前值:这样的话,HSC1的启动控制高为:11111000转化为16进制为 F8,将启动计数器时当前值存放在SMD48中,将预存置放在SMD52中,具体的程序 如下:
同样的,如果计数器在工作状态下想停止计数器,也必须改变它的控制字后,启动HSC具体程序 如下:
3. PID回路控制功能。
西门子S7-200系列PLC的PID控制相当的简单,可以通过micro/win软件的一个向导程序,按照提示,一步一步执行您所要求PID控制的属性即可,在这里谈一谈PID这三个参数的具体意义:P为增益项,P越大,响应起就快,在调节**阀时:设定**为50%,当目前**接近50%,刚超过,如果P值很大的话,那么**阀会马上会关闭,而不会控制在某一区域。这就是增益项太大引起。在调节的过程中应该先将P值调节比较适当了,再去调节I值,它为积分项,是在控制器回路中控制对当前值与设定值相等的偏差范围。D为微分项,主要作用是避免给定值的微分作用而引起的跳变。
在现场的PID参数的调整过程中,针对西门子S7-200型PLC我的建议是在不同的控制阶段,采用不同的PID参数组,具体而言就是当目前距离设定值差距较大时,采用P值较大的一套PID参数,如果当前值快接近设定值范围时,采用P值较小的一套PID参数
S7-1200 设计紧凑、组态灵活,TIA在库函数中嵌套了Modbus-RTU 和Modbus-TCP功能库,在做数据采集的项目中是非常好用的。
做过一个换热站设备运行监测的项目,需采集管网一次侧和二次侧的供水压力、温度以及ABB变频器的工作状态。现场各类变送器已经接到了原有的智能仪表上,采用1200plc通过MODBUS-RTU 与现场智能仪表和变频器通信是比较经济的方案,并且可通过MODBUS-TCP与远程上位机通信。
智能仪表及变频器作为从站,只需在设定中选择Modbus-RTU通信协议并且为设备分配不重复的站地址即可。1200PLC作为主站必须配备RS485通信模块,其通信的基本原理是:程序开始运行时,调用一次Modbus库中的功能块MB_COMM_LOAD来组态RS485模块上的端口;调用库中的功能块MB_MASTER作为Modbus主站与设备进行通信。
1200PLC作为主站通信是由DATA_ADDR(从站中的起始Modbus地址)和MODE(读、写、诊断模式)参数一起确定实际Modbus消息中使用的功能代码。DATA_PTR(数据指针)指向要写入或读取的数据的CPUDB地址,该DB必须为“非仅符号访问”DB类型。在TIAV12以上平台中,将该DB属性中的“优化的块访问”选项取消。
PLC主站发送带有站地址标识的数据来寻址不同的从站,不同的从站通过响应带有站地址标识的数据给主站,以完成整个通信过程。这种轮询通信,可以根据发送和接收完成的标志来完成,也可以以固定的时间间隔进行轮询,实际应用时需要考虑CPU的性能以及轮循Modbus子站时间。程序编好后先用MODBUS调试工具测试一下,正常后再开始接线。
在接线时遇到一个小插曲:PLC及变频器的485接线端子B为正,A为负,很多厂家仪表的485接线端子是A为正,B为负,一开始通信始终不正常,当查看仪表说明书时才发现。
项目中我使用的是Modbus-TCP通过PLC上PN接口与上位机进行通信,Modbus-TCP使用开放式用户通信连接作为Modbus通信路径。在S7-1200PLC的库函数中嵌套了Modbus-TCP功能块库,它包含了Server 和Client的库函数, 编程时可以直接调用该库函数可实现与上位机的Modbus-TCP通信。
在该系统应用中S7-1200 PLC作为 Modbus TcpServer (服务器),调用“MB_SERVER”指令处理Modbus-TCP客户机的连接请求、接收Modbus功能的请求并发送响应,设置连接ID、IP端口等参数,使用起来比较简单。
S7-1200PLC作为网络的服务器端,上位机可以按需建立连接访问PLC的数据区,这样在上位机对多个换热站的PLC连接中不会占用太多的资源。前提是PLC必需要有固定的IP才行,如果是动态拨号连接上位机,PLC端就需要作为客户端,通过修改MODE管脚的值改变发送或接收状态,按照主机的请求来按需向主机发送数据或主动接收主机的改写数据就比较麻烦了。
这是我在MODBUS通信协议项目应用中的一点小体会,一些观点或许过于幼稚,望各位同行多我指正,仅以此文起到抛砖引玉的作用。