电动机功率 | 3kW | 外形尺寸 | 2mm |
---|---|---|---|
重量 | 2kg |
西门子S7-200 SMART PLC可编程控制器,SMART LINE 触摸屏和SINAMICS V20 变频器*整合,为OEM 客户带来高性价比的小型自动化解决方案,满足客户对于人机交互、控制、驱动等功能的*需求。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-05-08 09:52:52浏览次数:273
联系我们时请说明是化工仪器网上看到的信息,谢谢!
冷启动(Coldrestart):
所有的数据(过程映象,位存储器、定时器和计数器)都被初始化,包括数据块均被重置为存储在装载存储器(Loadmemory)中的初始值,与这些数据是否被组态为可保持还是不可保持无关。首先执行启动组织块OB102,并不是S7400所有CPU都支持此功能。
暖启动(Warmrestart):
复位过程映象(PII,PIQ)以及非保持性位存储器(M)、定时器(T)和计数器(C)。定义的保持性存储器(M)、定时器(T)和计数器(C)会保存其后有效值。在有后备电池时,所有DB块数据被保存。没有后备电池时,由于没有非易失性存储区,DB数据和M,T,C均无法保持,这是300与S7-400PLC大的不同。
首先执行启动组织块OB100。用户如果没有更改过启动类型,系统默认设为暖启动。
手动暖启动:STOP->RUN(在CPU属性中选择暖启动,CPU若是有CRST/WRST选择开关,则必须设为CRST才能执行手动暖启动)。
自动暖启动:PowerOff->PowerOn(也就是给CPU上电时会执行自动暖启动,CRST/WRST选择开关对其没有影响)。
热启动(Hotrestart):
只有在有后备电池时才能实现,所有的数据都会保持其后有效值。程序从断点处执行,在当前循环完成之前,输出不会改变其状态。启动时执行OB101。
只有S7-400CPU才能进行热启动。
手动热启动:STOP->RUN+WRST(在CPU属性中选择热启动,CPU若是有CRST/WRST选择开关,则必须设为WRST才能执行手动热启动。
自动热启动:PowerOff->PowerOn(热启动也就是给CPU上电时会执行自动热启动,CRST/WRST选择开关对其没有影响)。
1.冷启动是断电后重新上电的一种启动;
2.暖启动是在PLC上电后CPU的拨动开关由STOP位置拨到RUN的位置的一种启动;
3.热启动是由PG/PC强制CPU从RUN进入STOP后再强制回到RUN的一种启动。
4.区别:冷启动CPU从自检开始并调入程序数据等然后从头执行程序;暖启动CPU不再进行自检,只是从头执行程序;热启动CPU进入STOP前时的程序执行状态接续执行。
Modbus地址实际上分为两种情况即PLC作Modbus主站,Modbus地址和PLC手册里的地址一与PLC作从站,PLC不用管什么Modbus地址。
Modbus地址实际上分为两种情况。下面以西门子S7-200/S7-200SMART/和S7-1200为例来说明:
*种情况:PLC作Modbus主站,Modbus地址和PLC手册里的地址*,例如作主站的S7-200的MBUS_MSG指令用于向Modbus从站发送请求消息,和处理从站返回的响应消息。要读取从站(另一台S7-200)的I0.0开始的地址区时,它的输入参数Addr(Modbus地址)为10001。S7-200从站保持寄存器的V区起始地址为VB200时,要读取从站VW200开始的V存储区时,保持寄存器的地址是40001。
第二种情况:PLC作从站,PLC不用管什么Modbus地址,等着主站来读写它的地址区就是了。
主站的计算机软件(例如DCS或组态软件)的编程人员需要编写实现Modbus通信的程序,首先需要确定ModbusRTU的报文结构。他们一般不熟悉PLC,因此PLC的编程人员往往需要和上位机软件的编程人员一起来讨论Modbus的报文结构。
容易出问题的就是报文里Modbus地址与PLC存储区地址的对应关系。曾经有工作人员做过的一个系统的上位机是的组态软件,通过分析GEPLC手册给出的CRC的循环异或计算实例每一步的中间数据,编写出了CRC计算的C语言程序。通过实验验证了Modbus报文结构和CRC的计算的可行性。
S7PLC手册给出的Modbus地址与Modicon公司和GE公司PLC使用的地址相同,是基于1的地址,即同类元件的首地址为1。而西门子PLC采用的是基于0的地址,即同类元件的首地址为0。Modbus报文中西门子PLC的Modbus地址也采用基于0的地址。
PLC系统手册中的Modbus地址的高位用来表示地址区的类型,例如I0.0的Modbus地址为10001。因为地址区类型的信息已经包含在报文的功能码中了,报文中S7-200的I0.0的Modbus地址不是10001,而是0。报文中其他地址区的Modbus地址也应按相同的原则处理。例如当S7-200从站保持寄存器的V区起始地址为VB200时,VW200对应的保持寄存器在报文中的Modbus地址为0,而不是40001。
WinCC与S7-300400通信的过程中要考虑的内容主要包括:
1.尽量减少脚本语言的使用。wincc的脚本功能很强,确实能实现一些明显的效果,但是从全局考虑的话,其执行效率就要降低了。比较简单的例子:切换画面,用WINCC自带的直接连接的切换效率明显是高于脚本的;并且曾经因为动作需要做了一个延时脚本,结果调试中就明显发现,延时过程中整个程序都被冻结了。所以我认为脚本的执行是纯粹的单线程运行,这样,众多脚本就必然因为先后的问题而相互影响。
2.不知道是不是国内的风格习惯,总是喜欢将上位画面做的非常漂亮,甚至说华丽,而这方面明显不是工控上位的强项。直接导致的结果就是系统资源消耗大,画面反应慢。所以应该尽量减少画面的绚烂程度。还是以功能的实现和操作的方便为主才好。
3.很多项目甚至是由于业主方的不熟悉,总是希望变量归档越多越好,这点上明显除了占用磁盘空间之外还要占用系统性能。所以,没必要的归档变量要尽可能的缩减,并且,根据实际数据的重要情况,分组的设置归档时间。尽量避免笼统的统一到非常频繁的变量归档。
4.至于硬件方面,*了,性能高的当然优于性能低的,以太网好于DP,DP好于MPI,不过实际上,就我做过的项目来说,不少项目实际上用MPI也是可以的。只要能满足当前的实际情况就好。并且,CPU上的DP口基本极少会单独留给上位使用,在没必要的时候,将上位分配到另外的网络,对DP网也只有好处。
结合国产组态软件时的经验考虑一下:
1.首先一点,不太清楚的地方是WINCC和PLC之间更为具体的通讯数据的处理方法。在国产软件上,这2者之间的通讯数据是打包的形势,而变量的建立直接影响了这个包怎么打。比如说,同样是8个bit,如果变量建立的合适,并且上位的读取方法合适,那么这8个bit被打成一个包从PLC传输到上位,而如果处理不当,这8个bit就有可能被打成2个包甚至更多,这明显降低了总线的通讯效率并降低了上位画面的数据采集速度。当然,这里的8bit只是一个例子。
2.wincc在位的处理上有点单一。实际项目中是有很多开关量的,对于开关量的处理上,通常有两种方式,一种是按位建立变量,一种是按字节甚至是字或双字的方式建立变量。对于前者,处理上方便了,直接在画面中使用就成,而带来的直接问题就是变量数的大幅增加。另外的问题就搞不清楚了,不知道WINCC内部是如何处理的,对于bit变量的处理,我想肯定也不会是一个bit就耗用一个数据帧,但是多少数据形成一个帧,又是根据什么形成的。能做的就是在PLC中建立变量的时候,把所有的数字量连续的建立在一起。而对于按字节或者字或者双字的方式建立变量,带来的问题就是需要在上位做解包处理。我还没有具体研究过解包的语句,但是这明显是要用到脚本来处理了,数字量众多,恐怕难以避免对系统性能的影响。从这点上引申来说,如果要细致的考虑通讯和优化,就要考虑在PLC中如何建立变量了,首先是地址的连续性,这点无可置疑,也就是说要尽大可能避免变量中间有空闲的数据位。不过同时也要考虑程序的可读性的话,在不同的使用区域之间,有时还要预留出一段地址空间,以便于以后增加设备或者增加控制功能而备用。这2者之间需要平衡一下。
3.用国产组态软件的时候,软件自带有通讯监视程序,从中可以看到通讯通讯的打包情况和传输时间,而在WINCC中好像没有这个功能。而我要提到的是这样一个问题:PLC中有不同的数据存储区域,上位对这些区域的读取速度是否相同?比如同样100个数据,从DB块中读取和从M区中读取,速度是否相同呢?因为我之前曾有过一次精力,某软件读取某PLC中不同数据区的速度差别居然很大,从上位画面的反应上都明显感觉的出来,所以后来在PLC中多写了一段程序,就是在数据处理完之后,将数据统一move到另一个数据区,上位统一从那个数据区读取,这样上下位之间的通讯确实快了很多。