自动化网-工控人家园官网

当前位置: 主页 > 工控品牌 > 西门子 >

西门子s7-200和s7-300有什么区别?西门子S7-1200编程技巧

时间:2017-02-14 10:13来源:未知 作者:admin 点击:
西门子s7-200和s7-300有什么区别?西门子S7-1200编程技巧
区别很多。从很多方面 
一、硬件区别: 
(1)最主要地区别就是S7-300更模块化了,S7-200系列是整体式的,CPU模块、I/O模块和电源模块都在一个模块内,称为CPU模块;而S7-300系列的,从电源,I/O,CPU都是单独模块的。但是这么说容易让人误解200系列不能扩展,实际上200系列也可以扩展,只不过买来的CPU模块集成了部分功能,一些小型系统不需要另外定制模块,200系列的模块也有信号、通信、位控等模块。 
(2)200系列的对机架没有什么概念,称之为导轨;为了便于分散控制,300系列的模块装在一根导轨上的,称之为一个机架,与中央机架对应的是扩展机架,机架还在软件里反映出来。 
(3)200系列的同一机架上的模块之间是通过模块正上方的数据接头联系的;而300则是通过在底部的U型总线连接器连接的。 
(4)300系列的I/O输入是接在前连接器上的,前连接器再接在信号模块上,而不是I/O信号直接接在信号模块上,这样可以更换信号模块而不用重新接线。 
(5)300系列2DP的部分CPU带有profibus接口。 
硬件的区别,一句话:西门子plc系统越大智能化越高,越方便维护。 
二、软件区别: 
(1)200系列用的STEP7-Micro/WIN40sp6软件;300使用的是STEP7软件,带了Micro和不带的区别是相当的明显啊。 
(2)200系列的编程语言有三种--语句表(STL)、梯形图(LAD)、功能块图(FBD);300系列的除了这三种外,还有结构化控制语言(SCL)和图形语言(S7 graph),其中SCL就是一种高级语言,以前用惯了LAD,现在还没有适应,也没有时间来学习。 
(3)300软件最大的特点就是提供了一些数据块来对应每一个功能块(Function Block-FB),称之为Instance,nnd,看起来要向C++看齐。 (4)300再也不能随意的自定义Organization Block、sub-routine和Interrupt routine了,现在OB1惟我独尊了,没事系统只能调用它了,其它的什么东东则变成了FB-Function Block和FC-Function,其它的也是预定义成了系统的了,System的S给它们(SFB、SFC)定义了自己的身份。 
软件的区别,一句话总结:编程理念不一样。 
三、应用区别 
如果你看了上面的书面形式的介绍,不看这个的话,恭喜,你错过了最重要的区别---应用方面的区别。 
200在西门子的PLC产品类里属于:小型PLC系统,适合的控制对象一般都在256点以下的; 
300在西门子的PLC产品类里属于:中型PLC系统,适合的控制对象一般都在256点以上,1024点以下的编程软件不一样,具体编程语言编程思路都不一样!
1、S7-200系列用的STEP7-Micro/WIN软件;S7-300使用的是STEP7软件。
2、S7-200系列的编程语言有三种:语句表(STL)、梯形图(LAD)、功能块图(FBD);S7-300系列的除了这三种外,还有结构化控制语言(SCL)和图形语言(S7 graph),其中SCL就是一种高级语言,高级语言可以更加方便的解决客户的专有问题,提高了程序执行效率,缩短了程序执行时间。
3、S7-300软件最大的特点就是提供了一些数据块来对应每一个功能块(Function Block-FB),称之为Instance。S7-300不能随意的自定义Organization Block、sub-routine和Interrupt routine,系统只能调用它OB1,其它的用FB-Function Block和FC-Function方式编辑,其它的也是预定义成了系统的了,System的S给它们(SFB、SFC)定义了自己的身份。
4、S7-200在西门子的PLC产品类里属于:小型PLC系统,适合的控制对象一般都在256点以下的;S7-300在西门子的PLC产品类里属于:大中型PLC系统,适合的控制对象一般都在256点以上,1024点以下的。

西门子S7-1200编程技巧

1、指令分为单扫描周期指令和多扫描周期指令。对于多扫描周期指令,如果EN或者REQ只使能一个扫描周期,该指令不能成功执行;例如大多数的通信指令;
2、FB块的输入输出形参存储于背景数据块中,在调用该FB时实参可选;而FC块的输入输出是临时内存,必须指定实参才能运行;
3、FB块的输入输出虽不是静态变量,但亦有保持功能,具体视程序而定;
4、注意变量被多次赋值时的先后顺序!因为变量的值总会被最后执行动作更新,前面的值将被覆盖;例如下图:


程序初衷为当接受响应完成时ERR置位,或响应超时ERR置位。上述程序是可以完成正常功能的;但若二者互换,如下图


接收超时时,ERR不会置位,因为rev_done为0,ERR被复位!
5、STEP 7中的梯形图操作数、能流的监控特征色(蓝绿)、以及监控表中的布尔变量的刷新频率有限,可能不能反映真实的实时运行状况,可借助一个累加器来监视程序的运行状态;例如下图:


6、单个扫描周期中,一个布尔变量的上升/下降沿只能读取一次;因为读取一次之后,其Pre变量已被立即刷新,后续的读取不能成功读到该变量的状态变化;
7、数组访问越界将导致CPU错误,ERR灯闪烁;
8、单扫描周期指令的循环操作是在单扫描周期完成的;
9、多使用宏定义,可使程序易读、方便修改;
10、关于能流:(1)能流流经某个具备EN和ENO的指令,并不一定代表该指令功能执行完成,只代表该扫描周期扫描完成;(2)算数运算、bool变量操作等单扫描周期指令的ENO输出代表该指令执行完成。
11、FB/FC的EN端将为能流提供扫描通道,EN端断路,能流无扫描通路,内部变量将不再刷新,即该函数不再执行;当FB/FC的EN端总是使能,Enable输入断开,块内部仍有能流通路,相应变量会被扫描以致刷新;请注意二者区别;例见下图:


前者FB12内部的变量总会被扫描,而后者在M3.0或DB_Valve.done为1时,内部变量不会被扫描;相应的,前者done变量将被下一扫描周期置0,而后者done置1后将因能流不通不能扫描而自行保持;

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容