西门子SIEMENS PLC S7-200 S7-300和 S7-400
SIEMENSPLC 在 中国 的 产 品 , 根 据 规 模 和 性 能 的 大 小 , 主 要有 S7-200S 7-300和 S7-400 三种, 下面就简单介绍一下该三种产品的一些特性及区别。
S7-200:
针对低性能要求的摸块化小控制系统, 它最多可有 7 个模块的扩展能力, 在模块中集成背板总线, 它的网络联接有 RS-485 通讯接口和 PROFIBUS 两种, 可通过编程器 PG 拜访所有模块, 带有电源、 CPU 和 I/O 的一体化单元设备。 其中的扩展模块(EM) 有以下几种: 数字量输入模块(DI) ——24VDC 和 120/230VAC;
数字量输出(DO) ——24VDC 和 继电器; 模拟量输入模块(AI) ——电压、电流、 电阻和热电偶; 模拟量输出模块——电压和电流。
还有一个比较特
别的模块-通讯处理器(CP) ——该块的功能是可以把 S7-200 作为主站连接到AS-接口(传感器和执行器接口),通过 AS-接口的从站可以控制多达 248 个设备,这样就可以显著的扩展S7-200的输入和输出点数。
CPU 设计:
有3种手动挑选操作模式: STOP——停机模式, 不执行程序; TERM——运行程序, 可以通过编程器进行读/写拜访; RUN——运行程序, 通过编程器仅能进行读操作。
状态指示器(LED) : SF——系统错误或(和) CPU 内部错误; RUN——运行模式,绿灯;STOP——停机模式,黄灯;DP——分布式I/O(仅对 CPU-215) 。
储备器卡——用来在没电的情形下不需要电池就可以储存用户程序。 PPI 口用来连接编程设备、文本显示器或其他CPU。
S7-300:
相比较S7-200, S7-300 针对的是中小系统, 他的模块可以扩展多达 32 个模块, 背板总线也在模块内集成, 它的网络连接已比较成熟和流行, 有 MPI(多点接口) 、 PROFIBUS 和工业以太网, 使通讯和编程变的简单和多选性, 并可以借助于HWConfig工具可以进行组态和设置参数。
S7-300的模块稍微多一点, 除了信号模块(SM) 和 200 的 EM 模块同类型之外,它还有接口模块(IM)——用来进行多层组态,把总线从一层传到另一层;
占位模块(DM) ——为没有设置参数的信号模块保留一个插槽或为以后安装的接口模块保留一个插槽; 功能模块(FM) ——执行特别功能, 如计数、 定位、 闭环控制相当于对CPU功能的一个扩展或补充; 通讯处理器(CP) ——提供点对点连接、PROFIBUS和工业以太网。
CPU 设计:
模式挑选器有:MRES=模块复位功能; STOP=停止模式, 程序不执行; RUN=程序执行,编程器只读操作;RUN-P=程序执行,编程器可读写操作。
状态指示器: SF, BATF=电池故障; DC5V=内部 5 V DC 电压指示; FRCE=表示至少有一个输入或输出被强制; RUN=当 CPU 启动时闪烁, 在运行模式下常亮;
STOP=在停止模式下常亮, 有储备器复位要求时慢速闪烁, 正在执行复位时快速闪烁。
MPI 接口用来连接到编程设备或其他设备, DP 接口用来直接连接到分布式I/O。
S7-400:
同300的区别主要是规模和性能上更强大, 启动类型有冷启动(CRST) 和热启动(WRST) 之分, 其他基本一样。 哦, 它还有一个外部的电池电源接口, 当在线更换电池时可以向RAM提供后备电源。
编程设备:
编程设备主要有 PG720 PG740 PG760——可以懂得成装有编程软件的手提电脑; 也可以直接用安装有 STEP7(SIEMENS 的编程软件) 的 PC 来完成。 而实现通讯(要编程第一要和 PLC 的 CPU 通讯上) 的要求主要在于接口: 1. 可以在PC 上装 CP5611 卡——上面有 MPI口,可用电缆直接连接。 2. 加个 PC 适配器,把 MPI口转换成RS-232口后接到PC上。 3. PLC 加 CP343 卡, 使它具有以太网口。
S7-200应用软件:
STEP 7-Micro/WIN16 V2. 1 用于 Windows 3. 1, Win-dows 3. 11, Windows 95,Windows 98或 Windows NT;需要10MB储备空间。
STEP 7-Micro/WIN16 V2.1 可以编制 S7-21x系列的全部功能,对于 S7-22x系列的附加功能不能编程。 CPU 与 PG/PC 通过 PC/PPI 电缆进行连接。 不支持SIMATIC CP CP5511/5611。 在 Windows 3. 1 和 Windows 3. 11 下通过 PC/PPI 电缆可以实现多主站模式。
预选功能:
CPU 在线功能; 例如 RUN/STOP, 从 CPU 向 PG/PC 装载用户程序, 从 PG/PC向 CPU写用户程序。
可以将STEP 7-Micro/WIN正在处理的程序与CPU所连接的程序进行比较。
通过调制解调器支持S7-200远程编程。
检测和故障诊断:执行单次扫描,强制输出。
网络节点表。
使用多个可同时打开的窗口可同时显示信号状态和状态表。
交叉参考。
导入和导出STEP 7-Micro/DOS格式的文件。
在Windows下设置打印机并可在任何Windows打印机上打印。
功能:
简单的程序结构; 通过一个主程序调用其他子程序或中断程序, 保证了程序结构的清楚。此外,还可以生产数据块。
可以用语句表(STL)和梯型图(LAD)编程。
可以进行符号编程。通过符号表分配符号和绝对地址,并可打印输出。
支持三角函数,开方,对数运算功能。
易学的指令集; 指令由容易记的缩写组成。 相同的指令只需稍加修改就可用于不同的功能(例如指令MOVE根据传送的方式不同有不同的形式) 。
易于使用的组态向导用于
TD 200文本显示器
PID控制器
CPU间数据传输的通讯功能
高速计数器
并可用于CPU硬件设置
扩展模块
输入延时
实时时钟设置
口令分配
CPU保持区的组态
通讯系统的网络地址
CPU最近的错误状态
由于目前主流系统是S7-300, 所以下面的操作基本以 S7-300 为主, 而实际过程由于配置的不同可能会有所不同。
STEP7项目结构:项目中,数据以对象形式储备,按树型结构组织。
第一级:包含项目图表,每个项目代表和项目储备有关的一个数据结构。
第二级: 站(如 S7-300) 用于存放硬件组态和模块参数等信息, 站是组态硬件的起点。
S7 程序文件夹是编写程序的起点, 所有 S7 系列的软件均放在 S7 程序文件夹下,它包含程序块文件和源文件夹。
SIMATIC的网络图表(MPI、PROFIBUS、工业以太网)
第三级和其他级:和上级对象类型有关。
编程器可离线/在线查看项目——OFFLINE:编程器硬盘上的内容; ONLINE:通过网线从PLC读到的内容。
菜单选项: 在 OPTIONS-CUSTOMIZE设置语言、 助记符、 常用特性(储备位置、系统信息显示)。
创建一个项目:FILE
NEW
NEWPROJECT
插入S7程序块:INSERT
PROGRAMS7PROGRAM
插入S7块: INSERT S7 BLOCK 然后可选: 1: 组织块(OB) 被操作系统调用,他们是操作系统和用户程序的接口。2:功能 FC 和功能块FB 是实
际的用户程序利用他们可以 把复杂的程序分解成小的, 易于调试的单元。 3:数据块储备用户的数据。 挑选所需块类型后, 会打开一个属性对话框, 其中可输入块序号和要使用的编程语言,及其他设置。
S7-300的储备器概念:
装载储备器是一个可编程模块, 它包括建立在编程设备上的装载对象(逻辑块、 数据块和其他信息), 它可以是储备器卡或内部集成的RAM。 储备器卡一样有两种, 其中, 当采用 RAM 储备器卡时, 系统必须配备电池, 当采用 Flash EPROM储备器卡时, 则断电不会丢失, 但内部 RAM 中的数据仍需电池保持。 工作储备器仅包含和运行时间使用的程序和数据, RAM 工作储备器集成在 CPU 中, 通过后备电池保持。 系统储备器包括过程映象输入和输出表(PII,PIQ), 位储备器, 定时器, 计数器和局部堆践。 保持储备器是非挥发的 RAM, 即使没有安装后备电池也可用来保持某些数据,设置CPU参数时要指定保持的区域。
从上述概念可知, 假如我们在线修改程序, 被修改的块存放在工作储备器中,当把程序上载到编程器时, 就从工作储备器传到编程器。 由于断电会导致 RAM数据的丢失,所以假如要安全储存被修改的程序,就必须储存在 FEPROM 或硬盘上。
组态过程:
启动硬件组态:新建一个项目(PROJECT),挑选该项目,并插入(INSERT)一个站(STATION),在 SIMATIC 治理器中挑选硬件站(HARDWARE) 双击OPEN 即可, 我们同时可以打开硬件目录——VIEW-CATALOG,如果挑选标准硬件目录库,它会提供所有的机架、模块和接口模块。
产生硬件组态: 主要挑选机架, 指定模块如何在机架摆放。 具体是:
1、在硬件目录中打开一个 SIMATIC300 站的 RACK-300(例如是 300),双击或拖到左边窗口。 这样在左边的窗口中就显现两个机架表: 上面的部分显示一个简表,下面的部分显示带有定货号、MPI地址和I/O地址的详细信息。
2、电源: 双击或拖拉目录中的“PS-300” 模块, 放到表中的一号槽位上。
3、CPU: 从 CPU-300 的目录中挑选你所配置的 CPU, 列入 2 号槽位。
4、3 号槽—一样接口模块保留(用于多层组态), 在实际配置中, 如果这个位置要保留以后安装接口模块,在安装时就必须插入一个占位模块。
5、信号模块: 从 4号槽位开始最多可以插入八块信号模块(SM 卡),包括通讯处理器(CP)和功能模块(FM)。
6、 CP 卡(通讯处理卡): 如以太网卡 CP-343, PROFIBUS CP-341、 342 等。
当然我们也可以直接用CPU上的MPI口,省钱但速度相对慢点。
分配参数: 按要求对各种模块参数进行设置。 双击模块打开属性对话框(Properties)
CPU——属性包括通用属性 General(主要提供模块的类型, 位置和MPI 地址—如果要把几个PLC通过MPI接口组成网络, 每个 CPU 分配不同的 MPI 地址);
启动项目START.UP(主要挑选三种启动方式, HOT—从断电时的语句, 也就是程序断电处开始, WARM—从头, 也就是程序第一步开始, COLD—冷启动; 监视时间包 括从模块 读 准 备 的 信 息 时 间 和 传 递参 数 到模块的 时 间 ; 可 储 存数 量RetentiveMemory: 用来指定当显现断电或从 STOP 到 RUN 切换时需要保持的储备器区域; 循环/时钟储备器; 保护功能(设定钥匙权限和各种级别及口令); 诊断/时钟。
硬 件 诊 断 及 组态 中 可 能 显 现的 问 题 : 在SIMATIC 治 理器 中 可 以 用PLC-DiagnoseHardware 来获得 PLC 的诊断状态。 在实际组态过程中最可能显现的问题是以下几点:
1、在S7-300中,组态中有空位置,此时组态不能编译通过;
2、不正确的 CPU(例如:是CPU315-2DP, 不是 CPU 314) 此时组态不能下载;
3、模拟量模块分配到不正确的槽位置,此时 CPU 会因为参数分配错误进入STOP 模式;
4、 模拟量模块不正确的测量范畴,导致模拟量模块组态错误。块的编辑
STEP 7 编程语言: LAD 梯形图/FBD 功能块图/STL 语句表,更加丰富, 更加灵活,但对初学者比较难以懂得,当然某些语言不能用LAD 表达。
块编辑的启动: 挑选所需编程语言, 双击打开需编辑的块,如 OB1 或 FC1等。 当采用 LAD 或 FBD 编程语言时, 可用工具条来插入简单的程序文件, 当采用STL, 则可用在线帮助得到有关语言的语法和功能——HELP-Help on STL。
编程器组成: 声明表: 属于块, 为块声明变量和参数; 代码区: 包含程序本身; 编程元件: 可选打开或关闭, 内容依靠于所挑选的编程语言, 双击插入或拖拉插入。
VIEW 菜单: 可切换到另一种语言, 并可实现 LAD/FBD/STL 之间的转换, 要知道, LAD/FBD 转换成 STL 的, 在语句表中可能不是最有效程序。 而 STL 转换成其他则不一定行,转换不了的仍用语句表示,转换过程绝不会丢失程序。
其他菜单由于篇幅较大, 请最好结合教材及软件自己熟悉。
在讨论调用块前先介绍一下 OB1 块——主循环块, 绝对不能改名或删除,它是由操作系统循环调用,可以拜访其他的 S7 程序块, 它包括自身程序和其他块的调用。 所以, 当我们编辑好一个块以后, 如 FC1, 为了让新块集成在 CPU 中的循环程序中, 必须在 OB1 中调用。即在 OB1 中 CALL F1。 子程序(新块 FC 1)执行的条件有以下三个: 已经下载到 PLC 中, 必须在 OB1 调用, PLC 处于运行状态。 下载到实际的 PLC 时, 我们可以挑选所有块或其中的一个或几个, 再Download到PLC中。
程序的执行过程: 当 PLC 得电或从 STOP 切换到RUN 模式, CPU 会执行一次
全启动(使用 OB100) 在全启动期间, 操作系统清除非保持位储备器、 定时器和计数器, 删除中断堆笺和块堆笺, 复位所有储存的硬件中断, 并启动扫描循环监视时间。
CPU 的循环操作包括三个主要部分: CPU 检查输入信号的状态并刷新过程影象输入表(PII. . ); 执行用户程序, 也就是 OB1 中的程序及一些事件(中断等);
把过程输出影象输出表(PIQ)写到输出模块。上面所提到的 PII/PIQ 是 CPU 中特定的储备器, 用来储存输入模块/输出模块的信号, 在用户程序中检查时, 可以保证在一个扫描周期内为同样的信号状态。
程序结构: 上面曾经提到过, 一个比较简单的程序, 我们可以不用各种子程序块(如 FC. FB), 而是直接把整个程序直接写在一个块上(通常是 OB1 主块上),CPU 逐条的处理指令, 我们称这种叫线形编程; 而对稍微有点复杂的程序, 我们可以把它分成几个块, 每块包含处理一部分任务的程序, 在每一个块中可以进一步分解、 成几个段, 可以为相同类型的段生成段模块, 组织块 OB1 包含按顺序调用其他块的指令, 我们把这种方法叫分块编程; 另外, 对可重复使用的功能装入单个块中, OB1(或其他块) 调用这些块并传递相关参数, 这种方法叫结构化编程。 用户块(程序块) 包括程序代码和用户数据, 在结构化程序中, 一些块循环调用处理, 一些块需要时才调用。 程序块共有组织块(OB)、 功能块(FB)、 功能(FC)、 系统功能块(SFB) 和系统功能(FC) 5 种, 其中系统块是在 CPU 操作系统中预先定义好的功能和功能块,这些块不占用用户程序空间。
讨论位指令前先讨论一下SIEMENS的模块地址: 在不带 DP 口的 S7-300 和不组态的S7-400采用固定槽位编址, 使用带 DP 口的 S7-300 和 S7-400, 可以分配模块的起始地址。 但要注意, 由于 CPU 储备器复位后, 参数和地址会丢失, 这就意味着所有地址都回到和槽位有关的地址或是缺省地址。我们还是以 S7-300 为例, 在 S7-300 中, 机架上的插槽号简化了模块地址, 模块的第一个地址由机架上的模块地址决定。 一样槽 1 给电源, 槽 2 是 CPU, 槽 3 为 IM(接口模板) 所用,4~11 为 I/O 卡、CP 卡和 FM 卡。他们的固定地址就是为每个槽位保留 4 个字节——就是说,槽 4(第一块 I/O 卡), 地址为 0. 0~3. 7(共 32 位),槽 5(第二块 I/O卡) 地址为 4. 0~7. 7, 假设第一卡是 DI, 那么他们的地址就是 I0. 0、 I0. 1、、、
I3. 7, 若第二卡为 DO 卡, 地址为 Q4. 0、 Q4. 1、、、、 Q7. 7, 请注意, 当使用 16 通道的 DI/DO模块时,每个槽位就会失去两个字节(16位)。
在 LAD/FBD中, 在线圈符号上面输入作为表示的标号或符号, 如 NEW1, NEW2 等,标号最多有 4 个字符, 第一个字符必须使用字母或“_” 。
跳转规则: 可以向前或向后跳转, 跳转指令和跳转目的必须在同一个块中(最大跳转长度为64K字节) ; 在一个块中跳转目的只能显现一次; 跳转指令可以用在FB、 FC 和 OB 中。
条件跳转: 有两个: JC——当 RLO=1 时, JC 才执行, 当 RLO=0 时, 不跳转, 连续执行下面的程序, 但置 RLO=1。 JCN——当 RLO=0 时, JCN 才执行, 当 RLO=1时, 不跳转。
边沿检测: RLO-边沿检测和信号-边沿检测。
RLO-边沿检测: 当逻辑操作结果变化时, 产生 RLO 边沿。 检测正边沿 FP——RLO从“0” 变化到“1” , “FP” 检查指令产生一个“扫描周期” 的信号“1” ; 检测负边沿 FN, 则 RLO 从“1” 变化到“0” , “FN” 检查指令产生一个“扫描周期” 的信号“1” 。 上述两个结果储存在“FP(FN) ” 位储备器中或数据位中,如 M 1. 0…, 同时, 可以输出在其他线圈。
信号-边沿检测: 同上面的 RLO 指令类似, 当信号变化时, 产生信号边沿, 也有正/负边沿之分: POS/NEG。
上述各种指令, 最好请结合实际软件, 把握其方法、 特性和不同之处, 其他复杂指令请参考各种高级编程手册。
数字指令
在讨论数字指令前先了解一下各种数据格式, 关于二进制、 十进制及其他数的表示方法, 在其他地方都有介绍, 这里就不再重复。
一、 数据格式(16 位) : 数据类型 INT 是整数(16 位) , 其中符号(位 15) 表示是正数或是负数(“0” =正数, “1” =负数) , 16 位整数的数值范畴是-32768~+32767。 在二进制格式中, 整数的负数形式用正数的二进制补码表示。
(二进制补码利用取反加1得到) 负数的位格式, 对零的位置加权求和, 再加1, 然后在前面放一个负号。
BCD 码: 十进制的每一位用四个二进制数表示, 因为最大为 9, 所以需要四位二进制才能表示出来(十进制的 9=1001 二进制) , 要注意, 从 0~9 的十进制数的BCD 码表示与二进制数表示相同, 但 BCD 码一样用作显示, 并非二进制。 上面的INT(整数) 主要是用来运算。
如 BCD码W#16#296, 在 CPU 中表现为 0000, 0010, 1001, 0110(直接为+, 2, 9,6=+296) ; 而整数+296 则表示为 0000, 0001, 0010, 1000(即 28+25+23=296) ,再例如整数-413 表示为 1111, 1110, 0110, 0011(因为是负数, 所以用补码,取反加 1, 所以上面的二进制数=-(28+27+24+23+22+1) =“-413” , 而在 BCD码该数(W#16#F413) 则可以简单的表示为 1111, 0100, 0001, 0011。
二、 数据格式(32 位) : DINT 类型的数据——带符号位的 32-位整数, 定义为“双整数” 或“长整数” , 它的表示方法及范畴是:
L#-2147483648~L#+2147483647; 还有一个是实数型 REAL 型(也叫浮点数) , 是1. 175495*10-38~3402823*1038 之间, 实数的通用格式为(Sign) *(1. f) *(2e-127) , 其中 Sign 为符号位第 31 位(即最高位) , 低位的 0~22 位为 f=底数位, 23~30 为 e=指数。 STEP 7 中的实数是按照 IEEE 标准表示的。
数据的装入和传递: MOVE(LAD/FBD) 或 L 和 T(STL) : 如果输入 EN 有效, 输入“IN” 处的值拷贝到输出“OUT” 。 装载和传递指令的执行与 RLO 无关, 数据通过累加器交换, 装载指令把右边源地址的值写到累加器 1(不够 32 位用 0 补齐) , 传递指令拷贝累加器中一些或所有内容到指定的目的地址。 如先装载L +5 / L L#523312 / L B#16#EF (分别为装载一个整数+5/一个双整数 523312/一个十六进制数EF) 到第一累加器(ACCU1) , 然后再传输到目的地,如 T MB5 等。 累加器是 CPU 中的辅助储备器, 它们用于不同地址之间的数据交换、 比较和数学运算操作。 S7-300 有两个 32 位的累加器, S7-400 有四个 32 位的累加器。 在装载过程中, ACCU 1 中的值先移入 ACCU 2, 在新值写入前先清零, 然后在把要装入的值写入 ACCU 1, 传递时则从 ACCU 1 中读出。 装载和传递指令可以指定 32 位中的一个字节或是字及双字, 如果仅传递一个字节, 只使用右边的 8 位。 在 LAD/FBD 中, 我们可以使用 MOVE 的答应输入(EN) 把装载和传递操作和 RLO 联系起来, 在 STL 中, 则总是执行装载和传递操作, 而和 RLO无关,但是,我们可以利用条件跳转指令来执行和RLO有关的装入和传递功能。
定时器: STEP 7 中, CPU 为定时器保留了一个特别储备器, 这个区专门为每个定时器地址保留一个16位字。 定时器的位 0~9 包含用二进制表示的时间值, 12、13 位为时间基准——0表示10ms, 1 表示 100ms, 2=1 秒, 3=10 秒, 时间基准定义的是一个单位代表的时间间隔。 时间值可以直接用常数来表示(此时时间基准自动由系统自动分配) , 例如 S5T#100ms, S5T#2h2m2s20ms。
S5 定时器格式: 时间的指定可以如上述所说直接输入固定的时间常数, 或由操作人员用拨轮按扭改变或和储备器字或数据字中的时间值有关的过程和配方。 在使用中可以用L命令(读出) 定时器 BI 输出端的地址(包含 10 位二进制数表示的时间值, 不带时间基准) , 如 L T5; 也可以用 LC 命令读出定时器 BCD 端的地址(3 位 BCD 数表示的时间值和 12、 13 位的时间基准) 。 具体介绍几种常用的定时器: 下面只介绍功能, 具体符号可以在元件表中找。
接通延时(SD) 定时器: 当定时器的“S” 输入端的 RLO 从 0 变到 1 时, 定时器启动。 只要输入 S=1, 定时器起作用, 当到达指定的 TV 值(预设值) 时定时器启动(输出 Q=1) ,同时该定位器还有一个复位端R端, 当等于 1 时, 就清除定时值并且复位 Q 输出。 当前时间可以在 BI 输出端以二进制数读出, 在 BCD 端以BCD 码形式读出, 当前时间值是 TV 的初始值减定时器启动以来的经过时间。
带保持接通延时定时器(SS) : 与上面 SD 定时器基本一致, 唯独不同的就是具有保持功能, 也就是说: 一旦 S 输入端的 RLO 从 0 变到 1, 定时器便启动, 即使定时过程中显现输入S端=0, 定时器仍连续记时。 但有一点, 在保持过程中, 如果 S 输入端再次从 0 变 1, 则定时重视新开始。
关断延时定时器(SF) : 从某些方面说, 和上面提到的 SD 接通延时定时器状态正好相反。 当定时器的 S 输入端的 RLO 从“1” 变到“0” 时, 定时器启动, 输出信号 Q=0, 其他功能和输出与 SD 一样。 个人懂得, 是否 SD 接通延时定时器, 较多的用于正逻辑, 而 SF 更多的用于事故安全型(有时也叫反逻辑, 就是在正常的工况中, 输入输出都为 1 或是带电情形) 中。
脉冲(SP) : 这个比较好懂得, 当“S” 输入端从 0 变到 1 时, 启动定时器, 输出 Q=1(最多一个脉冲。 输出 Q 复位的情形为: 定时器时间到或启动信号从 1 变到 0 或复位输入 R 信号=1。
扩展脉冲(SE) : 当输入端的 RLO 从 0 变到 1 时, 定时器启动, 输出 Q 置 1, 即使当中 S 端输入变到 0, 输出 Q 仍保持 1。 当定时器正在运行, 如果启动信号从0 变到 1, 定时器被再次启动。 它的复位情形是定时器时间到或复位 R 端有信号1。
位指令定时器: 所有的定时器也可以用简单的位指令启动, 这种方法和前面讨论的定时器功能的相似处在于: 启动条件在 S 端, 指定时间值, 复位条件在 R 端输入, 信号响应在 Q 端。 不同的是(对 LAD/FBD) 不能检查当前时间值(没有 BI/BCD输出) 。
S7-200与S7-300区别很多。从很多方面
一、 硬件区别:
(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 软件最大的特点就是提供了一些数据块来对应每一个功能块(FunctionBlock-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点以下的。

