西门子模块6ES7541-1AB00-0AB0
框架的概念
框架的***含义是骨架,他封装了同一种设备处理流程,所以对于项目应用来说框架只是一个半成品。同时由于自动化涵盖邻域众多,所以框架拥的目标性非常强,他是专注于解决某一个特定邻域的问题,并且致力于为这一特定邻域提供通用的解决方案。
框架的例子
以简单应用为例对于OB1中的程序调用框架如下:
当然对于更加复杂的应用来说,程序段4中的FC4 应该被更加的细分;
框架的应用
当一个控制系统选定框架之后,我们需要的就是在框架*的位置添加*的设备控制逻辑。也就是在一条生产线中添加不同或相同功能的设备,并且为它们添加联系,从而使整个生产线运转起来。
框架均是在实践中不停的反复使用检验再修正而得出的,所以在前期的精力投入是较大的,但是当框架完善后我们就可以使用更少的时间,更少的错误率,更方便的程序编写方式来完成整个项目,从而使项目的可靠性得到较大提高。
需要注意的是框架虽然为我们提供种种的便利,但是它也拥有同等的限制,因为当我们使用框架以后,我们就必须在这个框架的限制之内来构建我们的程序逻辑。
框架往往是这样产生的:我们拥有了开发某种类型应用的大量经验,我们总结这种类型的应用*性的东西,将其提炼到一个高的层次中,以备复用。这个“高层次”的东西便是框架的原型。随着我们经验的不断积累,框架也会不断地完善、发展。
框架是一个实践的产物,而不是在实验室中理论研究出来的。所以设计一个框架***好的方法就是从一个具体的应用开始,以提供同一类型应用的通用解决方案为目标,不断地从具体应用中提炼、萃取框架!然后在应用中使用这个框架,并在使用的过程中不断地修正和完善。
有一点需要特别注意,正如所有的软件架构设计的要点在于权衡(在这方面有点像艺术),框架的设计也不例外,正如前面提到,框架在为应用提供了一个骨架的同时,也给我们的应用圈定了一个框框,我们只能在这个有限的天地内来发挥。所以,一个好的框架设计应当采用了一个非常恰当的权衡决策,以使框架在为我们应用提供强大支持的同时,而又对我们的应用作更少的限制。权衡,从来就不是一件简单的事情,但是有很多框架设计的经验可以供我们参考。
构成程序框架的基本要素是库文件。
库文件
基于西门子TIA Protal 的应用,库文件分为以下几种类型:
1.HMI面板
2.HMI数据类型
3.HMI样式
4.HMI样式表
5.HMI文本列表
6.HMI页面
6.FC
7.FB
8.PLC数据类型
等等……
库文件主要为面向对象的具体化表现,同时它也拥有面向对象的封装,继承,多态等属性。在实际应用中,对于一个变频器的控制将他打包成一个通用性的FB或FC,这就叫封装、对于一个电动机的HMI面板,也可将它做成库文件,从而进行封装;
当封装的库文件达到可以覆盖整个生产线的所有功能时,也就实现了标准化工作;
库文件,是为某单一设备制定的控制逻辑,但是框架是为了整个生产线制定的流程控制;
对于小型控制系统不采用框架,是可以行得通的。但是对于大型生产线,比较复杂的控制系统,不采用框架,程序将处于一个较为混乱的状态;
系统相对还是简单的,一个314C的cpu下面挂了一个数字量输入,一个数字量输出,和一个SM331-7PF11-0AB0的热电偶模块。打开电脑,连接好MPI电缆,先上传硬件及程序,看cpu诊断缓冲区的提示信息有那些内容,图示:
Cpu报警是网络组态与系统要求或组态不一致,同时,cpu下挂的所有模块均存在报警,重新断电重新cpu后,只有***后那个热电偶模块报警,且报警信息,图示:
诊断结果信息:0~7CH各通道的模拟输入失败。
用万用表测试前连接器的21#、40#端子,24V电源输入22V电压,也属于正常范围没有问题。大概看了看线路,该设备的线路比较零乱,因为对该设备了解不十分熟悉,于是,打算断电拆下这个模块,拿到我办公室里去诊断一下,看是否确实是模块硬件故障还是其它什么问题。
模块测试:
1) 创建一个新项目,根据现有的cpu及待测试模块组态一个硬件系统,图示:具体硬件组态及硬件连接步骤不一一列举。
新建开通CH0~CH1通道,随意选择了温度模块输入特性,将硬件组态信息编译后,下载到cpu。
2) Cpu上电初始化后,cpu及SM331模块报警,莫非模块确实存在硬件问题?该模块之前还真的没有过多的了解,一般应用比较多的是SM331-7PF01/02-0AB0。找一找模块连接手册吧,大概在西门子***网站上找了找,还居然没有找到,只找到一个简易的接线图,图示:
3) 在线,看cpu及模块诊断信息,看是否有帮助信息提示:
这个诊断信息与工程师在现场实际项目的诊断信息是一致的,很有代表性。
4) 根据接线原理图,用短导线连接CH0通道,模块诊断信息仍然报警为CH0~CH1通道失败,可能是信息没有更新?断电重新cpu初始化过程后,再看诊断信息,图示:
确实,CH0的报警消失了,剩下CH1报警:输入失效,这个正确了,因为工程师CH1没有短接导线,将导线短接上去后,明显可以看到实际的模块红色指示灯消失,报警消除。