详细介绍: 西门子6SL3211-0AB17-5UB1,西门子6SL3211-0AB17-5UB1 {心中有空间,梦想就有可能} {西门子与客户携手,让关键所在,逐一实现} 联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515 直线销售 电 话: 021-31660605 在 线 商 务 QQ: 77956468 单位:台 产品单价:电议 供货数量:不限 最小定量:1 包装说明:齐全 产品规格:全新原装 定货号 | 注释 | 电源模板 | | 6ES7 307-1BA00-0AA0 | 电源模块(2A) | 6ES7 307-1EA01-0AA0 | 电源模块(5A) | 6ES7 307-1KA02-0AA0 | 电源模块(10A) | CPU | | 6ES7 312-1AE13-0AB0 | CPU312,32K内存 | 6ES7 312-5BE03-0AB0 | CPU312C,32K内存 10DI/6DO | 6ES7 313-5BF03-0AB0 | CPU313C,64K内存 24DI/16DO / 4AI/2AO | 6ES7 313-6BF03-0AB0 | CPU313C-2PTP,64K内存 16DI/16DO | 6ES7 313-6CF03-0AB0 | CPU313C-2DP,64K内存 16DI/16DO | 6ES7 314-1AG13-0AB0 | CPU314,96K内存 | 6ES7 314-6BG03-0AB0 | CPU314C-2PTP 96K内存 24DI/16DO / 4AI/2AO | 6ES7 314-6CG03-0AB0 | CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO | 6ES7 315-2AG10-0AB0 | CPU315-2DP, 128K内存 | 6ES7 315-2EH13-0AB0 | CPU315-2 PN/DP, 256K内存 | 6ES7 317-2AJ10-0AB0 | CPU317-2DP,512K内存 | 6ES7 317-2EK13-0AB0 | CPU317-2 PN/DP,1MB内存 | 6ES7 318-3EL00-0AB0 | CPU319-3 PN/DP,1.4M内存 | 内存卡 | | 6ES7 953-8LF20-0AA0 | SIMATIC Micro内存卡 64kByte(MMC) | 6ES7 953-8LG11-0AA0 | SIMATIC Micro内存卡128KByte(MMC) | 6ES7 953-8LJ20-0AA0 | SIMATIC Micro内存卡512KByte(MMC) | 6ES7 953-8LL20-0AA0 | SIMATIC Micro内存卡2MByte(MMC) | 6ES7 953-8LM20-0AA0 | SIMATIC Micro内存卡4MByte(MMC) | 6ES7 953-8LP20-0AA0 | SIMATIC Micro内存卡8MByte(MMC) | - 模块化微型PLC系统,满足中、小规模的性能要求
- 各种性能的模块可以非常好地满足和适应自动化控制任务
- 简单实用的分布式结构和多界面网络能力,应用十分灵活
- 方便用户和简易的无风扇设计
- 当控制任务增加时,可自由扩展
- 大量的集成功能使它功能非常强劲
SMIATIC S7-300 是模块化微型PLC,满足中、小规模的性能要求 模块化与无风扇设计,易于实现分布式结构以及用户友好的操作,使得 SIMATIC S7-300 成为中、小规模应用中各种不同控制任务的经济、方便的解决方案。 SIMATIC S7-300 的应用领域包括: - 专用机床
- 纺织机械
- 包装机械
- 通用机械工程
- 控制器制造
- 机床
- 楼宇自动化
- 电气与电子工业及相关产业。
一系列具有不同功率范围的CPU,以及具有很多用户友好功能的一系列扩展模块,可以使用户根据不同的应用情况选择相应的模块。 如果控制任务需要扩展,可以随时使用附加模块对控制系统进行扩展。 SIMATIC S7-300 是一个通用的控制器。 - 高等级的电磁兼容性以及高等级的抗震性,使得它具有极高的工业控制能力。
概述 S7-300采用模块化结构设计。含有多种模块,可进行单独组合。 一个系统包含下列组件: - 中央处理单元(CPU):
各种 CPU 可用于不同的性能范围,包括具有集成 I/O 和对应功能的 CPU 以及具有集成 PROFIBUS DP、PROFINET 和点对点接口的 CPU。 - 用于数字量和模拟量输入/输出的信号模块(SM)
- 用于连接网络和点对点连接的通讯处理器 (CP)。
- 用于高速计数、定位控制以及闭环控制的功能模块(FM)。
根据客户需要,还可以使用以下设备: - 用于将SIMATIC S7-300 连接到120/230V AC电源的负载电源模块(PS)。
- 接口模块(IM),用于多机架配置时连接中央控制器(CC)和扩展机架(ER)。
S7-300通过分布式中央控制器(CC)和3个扩展单元(EU) 可以操作多达32个模块。所有模块都是密封的,运行时无需风扇。 - SIPLUS 模块扩展的环境条件下使用:
适用于-25至+60°C 的温度范围高湿度、结露以及有雾的环境条件。防直接日晒、雨淋或水溅,在防护等级为IP20机柜内使用时,可直接用于车载或室外使用。不需要全天候防护的机柜和IP 65机柜保护。 设计 简单的结构使得S7-300使用灵活且易于维护: - 安装模块
只需简单地将模块挂在DIN安装导轨上,转动到位然后锁紧螺钉。 - 集成的背板总线:
背板总线集成到模块里。模块通过总线连接器相连,总线连接器插在机壳的背面。 - 模块具有机械编码,更换极为容易:
更换时只需松开模板上的紧固螺钉。 按下锁紧机构,拔下前连接器。前连接器上的编码装置防止将已接线的连接器错插到其他的模块上。 - 可靠的连接系统:
对于信号模块可以使用螺钉型接线端子或弹簧型接线端子。 - TOP 连接:
为采用螺丝端子或弹簧端子连接的1线-3线连接系统提供预组装接线。可以替代直接在信号模块上接线。 - 确定的安装深度:
所有的连接和连接器都在模块上的凹槽内,并有前盖保护。因此所有的模块都有确定的安装深度 - 无插槽规则:
信号模块和通讯处理模块可以不受限制地插到任何一个槽上。系统自行组态。 扩展 如果用户的自动化任务需要 8 个以上的 SM、FM 或 CP 模块插槽时,则 S7-300(除 CPU 312 和 CPU 312C 外)可以扩展: - 中央控制器和3个扩展机架最多可连接32个模块:
最多可将 3 个扩展机架(EU)连接到中央控制器(CC)。每个 CC / EU 可插 8 个模块。 - 通过接口模板连接:
每个 CC / EU 都有自己的接口模块。在中央控制器上它总是被插在 CPU 旁边的模块插槽中,并自动处理与扩展单元的通信。 - 通过 IM 365 扩展:
1个 EU 最远扩展距离为 1米,电源电压也通过该扩展提供。 - 使用 IM 360/361 扩展:
可扩展到 3个 EU, CC 与 ER 之间以及 EU 与 EU 之间最远距离 10m。 - 分布式安装:
通过连接 CC/EU 以增加连接距离。两个相邻CC/EU或EU/EU之间的距离:最长 10 m。 - 灵活的安装方式:
CC/EU 既可以水平安装,也可以垂直安装。这样可以最大限度满足空间要求。 通讯 S7-300 具有不同的通讯接口: - 连接 AS-i、PROFIBUS 和 PROFINET/工业以太网总线系统的通讯处理器。
- 用于点到点连接的通讯处理器
- 多点接口 MPI, 集成在 CPU 中;
是一种经济有效的方案,可以同时连接编程器/PC、人机界面系统和其它的SIMATIC S7/C7自动化系统。 PROFIBUS DP进行过程通讯 SIMATIC S7-300 通过通讯处理器或通过内置的 PROFIBUS DP 接口CPU连接到 PROFIBUS DP 总线系统。带 PROFIBUS DP 主/从接口的 CPU 可以进行分布式自动化结构,可以高速通讯并且易于使用。 从用户的角度来看,PROFIBUS DP上的分布式I/O处理与集中式I/O处理没有区别(相同的组态,编址及编程)。 以下设备可作为主站连接: - SIMATIC S7-300
(使用带 PROFIBUS DP 接口的 CPU 或 PROFIBUS DP CP) - SIMATIC S7-400
(使用带 PROFIBUS DP 接口的 CPU 或 PROFIBUS DP CP) - SIMATIC C7
(使用带 PROFIBUS DP 接口的 C7 或 PROFIBUS DP CP) - SIMATIC S5-115U/H、S5-135U 和 S5-155U/H,带IM 308
- SIMATIC 505
由于性能原因,每条链路上主站的数量限制为2个。 以下设备可作为从站连接: - ET 200 分布式 I/O 设备
- S7-300,通过 CP 342-5
- CPU 313C-2 DP、CPU 314C-2 DP、CPU 315-2 DP、CPU 315-2 PN/DP、CPU 317-2 DP、CPU 317-2 PN/DP 和 CPU 319-3 PN/DP
- C7-633/P DP, C7-633 DP, C7-634/P DP, C7-634 DP, C7-626 DP, C7-635, C7-636
- 现场设备
尽管配有 STEP 7 的编程设备/PC 或 OP 在总线上可作为主站使用,但是通过 PROFIBUS DP 也可以部分运行 MPI 功能。 通过 PROFINET IO 进行过程通讯 SIMATIC S7-300 通过通讯处理器或通过配备集成 PROFINET 接口的 CPU 连接到 PROFINET IO 总线系统。配备 PROFINET 接口的 CPU 可实现高速、易于使用的分布式自动化组态。 从用户的角度来看,通过 PROFINET IO 进行通讯的分布式 I/O 可作为中央 I/O(相同的组态、寻址和编程)。 可将下列设备作为 IO 控制器进行连接: - SIMATIC S7-300
(使用配备 PROFINET 接口或 PROFINET CP 的 CPU) - SIMATIC ET 200
(使用配备 PROFINET 接口的 CPU) - SIMATIC S7-400
(使用配备 PROFINET 接口或 PROFINET CP 的 CPU) 可将下列设备作为 IO 设备进行连接: - ET 200 分布式 I/O 设备
- SIMATIC S7-300
(通过 PROFINET CP) - 现场设备
通过AS-Interface通讯 对于 S7-300,通讯处理器(CP 342-2)适用于AS-Interface总线,可用来连接到现场设备(AS-Interface从站)。 更多信息,请参见通讯处理器说明. 通过CP或内置接口(点到点)进行数据通讯 点到点连接是用来建立经济有效的数据通讯方式,通过 CP 340/CP 341 通讯处理器或集成在CPU 313C-2 PtP 或 CPU 314C-2 PtP的内置接口进行数据通讯。有三种传输接口支持不同的通讯协议: - 20 mA (TTY) (仅针对 CP 340/CP 341)
- RS 232C/V.24(仅针对 CP 340/CP 341)
- RS 422/RS 485
可以连接以下设备: - SIMATIC S7、SIMATIC S5 和其他公司的自动化系统
- 打印机
- 机器人控制器
- 扫描器,条码阅读器,等
通讯功能块随手册一起提供。 使用多点接口(MPI)进行数据通讯 MPI(多点接口)是集成在 SIMATIC S7-300 CPU 上的通讯接口。它能用于简单的网络任务。 - MPI 可以同时连接多个配有 STEP 7 的编程设备/PC、HMI 系统(OP/OS)、S7-300 和 S7-400。
- 全局数据:
“全局数据通讯”服务可以在联网的CPU间周期性地进行数据交换。 一个 S7-300 CPU 可以交换多达 4 个数据包,每个数据包含有 22 字节数据,可同时有 16 个 CPU 参与数据交换(使用 STEP 7 V4.x)。 因此,一个 CPU 可以访问另一个 CPU 的输入/输出。 只能通过 MPI 接口进行全局数据交换。 - 内部通讯总线(C-bus):
CPU 的 MPI 直接连接到 S7 -300 的 C 总线上。这意味着通过MPI,PG可以直接寻址到连接到C总线上的FM/CP模块。 - 功能强大的通讯技术:
- 最多 32 个 MPI 站
- 使用 SIMATIC S7-300/-400 的 S7 基本通讯的每个 CPU 有多个通讯接口。
- 使用编程设备/PC、SIMATIC HMI 系统和 SIMATIC S7-300/400 的 S7 通讯的每个 CPU 有多个通讯接口。
- 传输速率为 187.5 kbit/s 或 12 Mbit/s
- 灵活的设计:
可靠的组件用于建立 MPI 通讯: PROFIBUS和 “分布式 I/O ”的总线电缆、总线连接器和 RS 485 中继器。它们可以优化配备安装达到特定要求。例如,如果需要可连接最多串联 10 个中继器,以实现任何两个 MPI 节点之间的最大距离。 通过 CP 进行数据通讯 SIMATIC S7-300 通过 CP 342 和 CP 343 通讯处理器可以连接到 PROFIBUS 和工业以太网总线网络。 可以连接以下设备: - SIMATIC S7-300
- SIMATIC S7-400
- SIMATIC S5-115U/H、S5-135U 和 S5-155U/H
- 编程器
- PC 机
- SIMATIC HMI 操作员控制和监视系统
- 数控
- 机器人控制器
- 工业PC
- 驱动控制器
- 其它厂商设备
运用VC#编程通过OPC方式实现PC机与西门子PLC通讯 1、 配置OPC服务器 对于服务器的配置与同步通讯的配置一样,这里不需再讲解,若有不清楚的,可以参阅之前发布的<运用VC#编程通过OPC方式实现PC机与西门子PLC通讯> 2、 OPC编程 变量组、项的命名规则与同步通讯的一样,这里不再描叙,下面主要就开发一个异步通讯类 AsynServer来讲解如何编程。 <1>、引用 在VC#开发环境中添加对OpcRcw.Da库以及OpcRcw.Comn库的引用,该库属于.NET库,不属于COM库,西门子虽然编写了类库,以提供对.NET平台的支持,但这些类库仍然难于编程,里面包含了大量的在托管和非托管区传输数据,因此我们需要在它的基础上再开发一个类库,以简化以后的编程,首先在类的开头使用命名空间: using OpcRcw.Comn; using OpcRcw.Da; using System.Runtime.InteropServices; using System.Collections; <2>、编程 异步编程的原理就是在OPC服务器那边检测当前活动的变量组,一但检测到某一个变量,譬如变量Q0.0从1变成0,就会执行一个回调函数,以实现针对变量发生变化时需要实现的动作,在这里可以采用委托来实现该功能。 1、 在命名空间的内部、类 AsynServer声明之前添加委托的申明: // 定义用于返回发生变化的项的值和其对应的客户句柄 public delegate void DataChange(object[] values,int[] itemsID); 2、 该类继承于西门子提供的库接口IOPCDataCallback public class AsynServer:IOPCDataCallback 在类的开头部分声明变量: struct groupStru { public int groupID; public object groupObj; } internal const int LOCALE_ID = 0x407; //本地语言 private Guid iidRequiredInterface; private string serverType=""; private int hClientGroup = 0; //客户组号 private int nSvrGroupID; // server group handle for the added group private Hashtable hashGroup; //用于把组收集到一起 private int hClientItem=0; //Item号 3、编写构造函数,接收委托参数已确定当数据发生变化时需要执行的方法入口点: //创建服务器 //svrType 服务器类型的枚举 //dataChange 提供用于在数据发生变化时需要执行的函数入口 public AsynServer(ServerType svrType,DataChange dataChange) { switch(svrType) { case ServerType.OPC_SimaticHMI_PTPR serverType="OPC.SimaticHMI.PTPro";break; case ServerType.OPC_SimaticNET: serverType="OPC.SimaticNET";break; case ServerType.OPC_SimaticNET_DP: serverType="OPC.SimaticNET.DP";break; case ServerType.OPC_SimaticNET_PD: serverType="OPC.SimaticNET.PD";break; case ServerType.OPCServer_WinCC: serverType="OPCServer.WinCC";break; } hashGroup=new Hashtable(11); dtChange=dataChange; }
4、创建服务器 // 创建一个OPC Server接口 //error 返回错误信息 //若为true,创建成功,否则创建失败 public bool Open(out string error) { error="";bool success=true; Type svrComponenttyp ; //获取 OPC Server COM 接口 iidRequiredInterface = typeof(IOPCItemMgt).GUID; svrComponenttyp = System.Type.GetTypeFromProgID(serverType); try { //创建接口 pIOPCServer =(IOPCServer)System.Activator.CreateInstance(svrComponenttyp); error=""; } catch (System.Exception err) //捕捉失败信息 { error="错误信息:"+err.Message;success=false; } return success; } 5、 编写添加Group的函数 /// /// 添加组 /// /// 组名 /// /创建时,组是否被激活 /// //组的刷新频率,以ms为单位 /// 返回错误信息 /// 若为true,添加成功,否则添加失败 public bool AddGroup(string groupName,int bActive,int updateRate,out string error) { error="";bool success=true; int dwLCID = 0x407; //本地语言为英语 int pRevUpdateRate; float deadband = 0; // 处理非托管COM内存 GCHandle hDeadband; IntPtr pTimeBias = IntPtr.Zero; hDeadband = GCHandle.Alloc(deadband,GCHandleType.Pinned); try { pIOPCServer.AddGroup(groupName, //组名 bActive, //创建时,组是否被激活 updateRate, //组的刷新频率,以ms为单位 hClientGroup, //客户号 pTimeBias, //这里不使用 (IntPtr)hDeadband, dwLCID, //本地语言 out nSvrGroupID, //移去组时,用到的组ID号 out pRevUpdateRate, //返回组中的变量改变时的最短通知时间间隔 ref iidRequiredInterface, out pobjGroup1); //指向要求的接口 hClientGroup=hClientGroup+1; groupStru grp=new groupStru(); grp.groupID=nSvrGroupID;grp.groupObj=pobjGroup1; this.hashGroup.Add(groupName,grp);//储存组信息 // 对异步操作设置回调,初始化接口 pIConnectionPointContainer = (IConnectionPointContainer)pobjGroup1; Guid iid = typeof(IOPCDataCallback).GUID; pIConnectionPointContainer.FindConnectionPoint(ref iid,out pIConnectionPoint); pIConnectionPoint.Advise(this,out dwCookie); } catch (System.Exception err) //捕捉失败信息 { error="错误信息:"+err.Message;success=false; } finally { if (hDeadband.IsAllocated) hDeadband.Free(); } return success; }
6、 编写激活、或者取消激活组的函数
在同步编程中对于组的激活或者取消激活没有实质的意义,但在异步通讯编程中却异常重要,这是因为OPC服务器只对当前处于活动状态的组中的变量进行监控,同时这也是很有必要的,因为我们可以把不同界面中的变量编程不同的组,即同一界面中的变量规成一个组,而在某一时刻提供给用户的只有一个界面,让该界面中用到的组处于活动状态,这样执行委托调用时只会执行于该界面中有关的变量检测,而如果让所有的组处于活动状态,则当前没有显示给用户的界面用到的变量若发生变化也会触发对委托函数的调用,这根本是没有必要的,同时会大大降低程序的性能,请严格控制组的激活。 /// /// 激活或者取消激活组 /// /// 指定组名 /// true为激活,false为取消激活 /// 若有错误,返回错误信息 /// 若为true,添加成功,否则添加失败 public bool AciveGroup(string groupName,bool toActive,out string error) { error="";bool success=true; //通过名称获取组 object grp=((groupStru)hashGroup[groupName]).groupObj; IOPCGroupStateMgt groupStateMgt=(IOPCGroupStateMgt)grp; //初始化传递参数 IntPtr pRequestedUpdateRate = IntPtr.Zero; //由客户指定的Item更新间隔时间 int nRevUpdateRate = 0; //由服务器返回的能够更新的最短时间间隔 IntPtr hClientGroup = IntPtr.Zero; //客户组 IntPtr pTimeBias = IntPtr.Zero; IntPtr pDeadband = IntPtr.Zero; IntPtr pLCID = IntPtr.Zero;
// 激活或者取消激活组 int nActive = 0; GCHandle hActive = GCHandle.Alloc(nActive,GCHandleType.Pinned); if(toActive) hActive.Target = 1; else hActive.Target = 0; try { groupStateMgt.SetState(pRequestedUpdateRate,out nRevUpdateRate,hActive.AddrOfPinnedObject(),pTimeBias,pDeadband,pLCID,hClientGroup); } catch(System.Exception err) { error="错误信息:"+err.Message;success=false; } finally { hActive.Free(); } return success; }
7、 向指定的组中添加变量的函数 /// /// 向指定的组添加一系列项 /// /// 指定组名 /// 完整的item名数组 /// 由服务器返回读写数据时需要使用的item号 /// 无错误,返回true,否则返回false public bool AddItems(string groupName,string[] itemsName,int[] itemsID) { bool success=true; OPCITEMDEF[] ItemDefArray=new OPCITEMDEF[itemsName.Length]; for(int i=0;i { hClientItem=hClientItem+1; //客户项自动加1 ItemDefArray[i].szAccessPath = ""; // 可选的通道路径,对于Simatiic Net不需要。 ItemDefArray[i].szItemID = itemsName[i]; // ItemID, see above ItemDefArray[i].bActive = 1; // item is active ItemDefArray[i].hClient = hClientItem; // client handle ,在OnDataChange中会用到 ItemDefArray[i].dwBlobSize = 0; // blob size ItemDefArray[i].pBlob = IntPtr.Zero; // pointer to blob ItemDefArray[i].vtRequestedDataType = 4; //DWord数据类型 } //初始化输出参数 IntPtr pResults = IntPtr.Zero; IntPtr pErrors = IntPtr.Zero; try { // 添加项到组 object grp=((groupStru)hashGroup[groupName]).groupObj; ((IOPCItemMgt)grp).AddItems(itemsName.Length,ItemDefArray,out pResults,out pErrors);
int[] errors = new int[itemsName.Length]; IntPtr pos = pResults; Marshal.Copy(pErrors, errors, 0,itemsName.Length); for(int i=0;i { if (errors[i] == 0) { OPCITEMRESULT result = (OPCITEMRESULT)Marshal.PtrToStructure(pos, typeof(OPCITEMRESULT)); itemsID[i] = result.hServer; pos = new IntPtr(pos.ToInt32() + Marshal.SizeOf(typeof(OPCITEMRESULT))); } else { String pstrError; pIOPCServer.GetErrorString(errors[0],0x407,out pstrError); success=false; break; } } SetItenClient(groupName,itemsID,itemsID); //要求始终只有一个组被激活,才不会引起冲突。 } catch (System.Exception err) // catch for error in adding items. { success=false; //error="错误信息:"+error+err.Message; } finally { // 释放非托管内存 if(pResults != IntPtr.Zero) { Marshal.FreeCoTaskMem(pResults); pResults = IntPtr.Zero; } if(pErrors != IntPtr.Zero) { Marshal.FreeCoTaskMem(pErrors); pErrors = IntPtr.Zero; } } return success; } 在终端模块 TM31 上提供有以下接口: - 8 路数字量输入
- 4 路双向数字路输入/输出
- 2 路带转换触点的继电器输出
- 2 路模拟量输入
- 2 路模拟量输出
- 1 路温度传感器输入(KTY84-130 或 PTC)
- 2 个 DRIVE-CLiQ 插座
- 1 个电子装置电源接口,通过 24 V DC 电源连接器连接
- 1 个 PE/保护导体连接
TM31 端子模块可卡装在符合 EN 60715 (IEC 60715) TH 35 安装导轨上。 信号电缆屏蔽可以借助一个屏蔽线接线端子连接在终端模块 TM31 上,例如 Phoenix Contact 型号的 SK8 ,或者Weidmüller 型号的KLBü1。屏蔽接线端子在失去弹性时不能再使用。 端子模块 TM31 的状态通过一个多色 LED 来显示。 该装置最重要的组件为: - 反并联连接的双碟型晶闸管
- 触发电路根据版本可以在限定的电压下触发阻隔方向上的晶闸管。
- 一个用于检测灭磁/放电电阻上的电压的模块,可以检测传导的电流,识别出何时过压保护装置触发,并使用二元输入发出状态信号。
- 功率连接 C、D(铜母线)
- 端子 XEW1 用于连接来自灭磁/放电电阻的传感器线。
- 一个“可选快速灭磁”模块(选件 G11)。
该模块通过控制三个相互独立的快速继电器使晶闸管可以在任何时候触发。 反并联连接的两个晶闸管(位于连接 C 和 D 之间)可以短暂的(大约 5s)传导脉冲电流。过压会触发触发电路上的一个击穿二极管,而它会触发阻断晶闸管,并把触发电流经过阻断晶闸管通过一个反并联连接的二极管传输给它的闸门/阴极。击穿二极管与过压极性无关,总是利用桥式整流器以相同方向运行,而触发电流使用串联电阻限制在 6 到 8A 之间。晶闸管会在几毫秒之内触发,而电压会快速下降到正向电压(1 到 1.5V)。负载电流会在几秒钟之内提高碟型晶闸管的温度,而晶闸管和堆结构会吸收热能。这样一来,负载循环只能等到冷却时间过去之后才能重复(见技术规范)。 快速灭磁选件(G11)连接到触发电路上的方式使晶闸管可以随时通过至少三个继电器中的一个触发 - 三个继电器是相互独立的。这假定了电压足够大。一般来说,它大概为触发电压的 5%。三个都可以使用 24V 直流、110 V 到 125 V 直流或 220 V 到 240 V 直流控制。 用于灭磁/放电电阻的电压检测装置连接到外部灭磁/放电电阻上。当电压检测响应时,必须阻断供电变频器,或者控制电流降到 0。电压检测模块需要一个最小 100mA 的外部 24V 直流电源。 灭磁/放电电阻是一个外部器件,不包括在 SICROWBAR DC 过压保护装置交付范围内。它的电阻值必须足够高,以便即使在最高负载电流下电压仍然能够保持在保护供电变频器或绕组的破坏性限制以内。最低的电阻值由转换器的供电电压和最高负载电流限定(确定保险规格)。在确定电阻值时还必须考虑所需的灭磁时间。
比较简单的实现PID闭环控制的方法 PID控制的难点在于整定控制器的参数。为了学习整定PID控制器参数的方法,必须做闭环实验,开环运行PID程序没有任何意义。用硬件组成一个闭环需要PLC的CPU模块、模拟量输入模块和模拟量输出模块,此外还需要被控对象、检测元件、变送器和执行机构。例如可以用电热水壶作为被控对象,用热电阻检测温度,用温度变送器将温度转换为标准电压,用移相控制的交流固态调压器作执行机构。 有没有比较简单的实现PID闭环控制的方法呢? 在控制理论中,用传递函数来描述被控对象、检测元件、执行机构和PID控制器。 被控对象一般是串联的惯性环节和积分环节的组合。在实验室可以用以运算放大器为核心的模拟电路来模拟广义的被控对象(包括检测元件和执行机构)的传递函数。我曾将这种运放电路用于S7-200和S7-1200的PID参数自动调节实验。 用运算放大器模拟被控对象一般需要做印刷电路板,还是比较麻烦。有没有更简单的方法呢? 除了用运算放大器来模拟被控对象的传递函数,也可以用PLC的程序来模拟。为此我编写了用来模拟被控对象的S7-200的子程序,它也可以用于S7-200 SMART。使用模拟的被控对象的PID闭环示意图如下图所示,虚线右边是被控对象,DISV是系统的扰动输入值。虚线左边是PLC的PID控制程序。

被控对象的数学模型为3个串联的惯性环节,其增益为GAIN,3个惯性环节的时间常数分别为TIM1~TIM3。其传递函数为

分母中的“s”为自动控制理论中拉普拉斯变换的拉普拉斯算子。将某一时间常数设为0,可以减少惯性环节的个数。图中被控对象的输入值INV是PID控制器的输出值。被控对象的输出值OUTV作为PID控制器的过程变量(反馈值)PV。 下图是模拟被控对象的子程序,实际上只用了两个惯性环节,其时间常数分别为5000ms和2000ms。用与PID的采样周期相同的定时中断时间间隔来调用这个子程序。

下图是用来监视PID回路运行情况的STEP 7-Micro/WIN的PID调节控制面板,可以用它进行PID参数自整定或手动调节PID参数的实验。标有PV(即被控量)的是过程变量的阶跃响应曲线。

将上图中的积分时间由0.03min(分钟)增大到0.12min,下图的超调量有明显的减小。通过修改PID的参数,观察被控量阶跃响应曲线给出的超调量和调节时间等特征量的变化情况,可以形象直观、快速地学习和掌握PID参数的整定方法。 
|