龙岩西门子PLC代理商
一、S7 Open IE通讯概述
可以通过S7-300/400 PLC集成的 PROFINET 接口使用基于工业以太网的开放式通信与Simotion设备进行数据交换,下列通信协议支持开放式通讯:
? TCP
? UDP
PLC 通过工业以太网 OPEN IE 通信方式下的 TCP IP 协议进行数据交换,需要使用以下程序块:
? FB65 "TCON" 建立连接
? FB66 "TDISCON" 中止连接
? FB63 "TSEND" 发送数据
? FB64 "TRCV" 接收数据
这些通信功能块可以在函数库 Standard Library -> Communication Blocks 中找到。 用于连接 TCP IP 端点的参数存储于一个数据结构体中。在本程序示例中,使用数据结构体 UDT65 "TCON_PAR",用户将对这个数据结构体进行参数化。不需要在 NetPro 中配置通信连接。UDT65的创建需要使用 Open IE向导来完成。
一、S7-200 PLC结构
S7-200 CPU将一个微处理器、一个集成电源和数字量I/O点集成在一个紧凑的封装中,从而形成了一个功能强大的微型PLC, 在下载了程序之后,S7-200将保留所需的逻辑,用于监控应用程序中的输入输出设备。
①I/O接线端子排;
②输出 LED指示;
③前盖:模式选择开关(RUN/STOP);模拟电位器;扩展端口(适用大部分CPU)
④状态LED:系统错误/诊断(SF/DIAG);RUN(运行);STOP(停止)
⑤可选卡插槽:存储卡;时钟卡;电池卡
⑥通讯口
⑦输入 LED指示
⑧扩展电缆
⑨用于装上标准(DIN)导轨的夹片
电气安装:
变频器必须接地。
为了保证变频器的安全运行,必须由经过认证合格的人员进行安装和调试,这些人员应*按照本使用说明书中规定的警告进行操作。
要特别注意遵守关于在危险电压设备上工作的常规和地方性安装和安全导则(例如,EN 50178),而且要遵守有关正确使用工具和人身防护装置的规定。禁止在与变频器连接的电缆上使用高压绝缘测试设备。
即使变频器不处于运行状态,其电源输入线、直流回路端子和电动机端子上仍然可能带有危险电压。因此,断开开关以后还必须等待 5 分钟,保证变频器放电完毕,再开始安装工作。
如果卸下了前面的盖板(仅指框架尺寸为 FX和 GX的 MM 440 变频器),风机的叶片便显露出来。当风机正在转动时,存在着造成人身伤害的危险。
电磁干扰(EMI)的防护:
变频器的设计允许它在具有很强电磁干扰的工业环境下运行。通常,如果安装的质量良好,就可以确保安全和*的运行。如果您在运行中遇到问题,请按下面指出的措施进行处理。
确信机柜内的所有设备都已用短而粗的接地电缆可靠地连接到公共的星形接地点或公共的接地母线上。
确信与变频器连接的任何控制设备(例如 PLC)也像变频器一样,用短用粗的接地电缆连接到同一个接地网或星形接地点上。
由电动机返回的接地线直接连接到控制该电动机的变频器的接地端子(PE)上。
优先使用扁平导体,因为它们在高频时阻抗较低。
电缆末端的端接处应尽可能整齐,保证未经屏蔽的线段尽可能短。
控制电缆的布线应尽可能远离供电电源线,使用单独的走线槽;在必须与电源线交叉时,相互应采取 90°直角交叉。
无论何时,与控制回路的连接线都应采用屏蔽电缆。
确信机柜内安装的接触器应是带阻尼的,即是说,在交流接触器的线圈上连接有 R-C 阻尼回路;在直流接触器的线圈上连接有‘续流’二极管。安装压敏电阻对抑制过电压也是有效的。当接触器由变频器的继电器进行控制时,这一点尤其重要。
接到电动机的连接线应采用屏蔽电缆或铠装电缆,并用电缆接线卡子将屏蔽层的两端接地。
命令和频率给定值的选择 P0719:
参数 P0719代表了两个参数 P0700和 P1000功能的组合。可以通过参数变更切换命令源及频率给定值源。同参数 P0700和 P1000相反,对参数 P0719,下级(较低级)的 BICO参数并不更改。该特性通过 PC工具专门用于短暂检索传动系统的控制权限而无需更改现有的 BICO参数设置。参数P0719“命令和频率给定值的选择"包含有命令源(Cmd)和频率给定值(给定值)。
BICO 技术:
利用 BICO 技术(Binector Connector Technology),过程数据可利用“标准"传动参数设置自由地互相连接。在这种情况下,可以自由互连的所有值(如频率给定值、频率实际值、电流实际值等)可以定义为“连接器",而可以自由互连的所有数字信号(如一个数字输入的状态、ON/OFF、一个限幅违法时的信息功能等)可以定义为“开关量连接器"。在一个传动装置中存在很多输入和输出量以及在闭环控制中能够互连的量。利用 BICO技术可以使传动系统适应各种要求。
一个开关量连接器是一个不带任何单位的数字(开关量)信号,它的值只为 0或 1。开关量连接器总是涉及到细分的开关量连接器输入和开关量连接器输出的功能。在这种情况下,总是用一个带“BI"属性的“P"参数作为开关量连接器输入(如:P0731 BI:功能,数字量输入 1),而用一个带“BO"属性的“r"参数代表开关量连接器输出(如:r0751 BO:ADC状态字)。
从上面的例子可以看出,开关量连接器参数在参数名前面有以下缩写:BI 开关量连接器输入,信号接收器(“P"参数)
→ 通过将开关量连接器输出(BO参数)的参数号作为值输入 BI参数的方式,可以使 BI参数同一个开关量连接器输出作为源互连(如用“BI"参数 P0731同“BO"参数 r0751互连,则 P0731 = 751)。
BO 开关量连接器输出,信号源(“r"参数)
→ BO参数可用作为 BI参数的源。对于实际互连,BO参数号必须输入 BI参数中(如:用“BI"参数 P0731同“BO"参数 r0751互连,则 P0731 = 751)。
模拟量的值被限制在 10 V或 20 mA。折算到相应的参考值上的一个 的大值可被输出/输入,只要 DAC/ADC尚未定标(工厂设定)。
通过串行接口的给定值和实际值信号:
♦ 当传送正使用的 PZD部分,它们被限制为值 7FFF h。这就是大值折算到参考值为 200%的理由。
♦ 当传送正使用的 PKW部分,它们将传送有关数据类型和单位。
参数 P1082(大频率)将变频器频率限制在同参考频率无关的值上。当变更 P1082时(工厂设定:50 Hz),P2000也总是要调整的(工厂设定:50 Hz)。如对于一台 NEMA电机,参数设定为 60 Hz并且 P2000也不变更,则模拟给定值/实际值被限定在 或 4000 h的给定值/实际值信号被限制为 50 Hz
有时用户在使用S7-400时会碰到CPU停机的问题,查看CPU的诊断缓冲区可以看到这样的问题描述:
STOP due to IO error
No relevance for user (Z1): 9182
No relevance for user (Z2): 03b0 (Z3): 0579
Previous operating mode: RUN
Re operating mode: STOP (internal)
External error, Incoming event
08:17:48.662 AM 09/03/1994
(Coding: 16# 494D FF84 5050 9182 03B0 0579)
从诊断信息中得不到任何有用的提示,这样的故障即使调用OB块也会停机(个人认为“No relevance for user”是给研发工程师做后台分析使用的信息),总之系统不能判断故障的原因,遇到这样的问题通常都是背板总线有问题,例如背板总线的针脚短路或背板总线受到干扰。
从故障的现象可以简单判断背板总线是短路故障还是受到干扰,如果CPU不能启动或启动后外部故障指示灯亮,IO模块不能被识别,这样可以判断背板在插拔模块时针脚短路了,应该检查背板,有一个用户在安装电源模块时,针脚短路了,后面的CPU怎么也启动不起来。如果故障时有时无,不定期出现,这样可以判断背板总线受到干扰,下面看看背板总线与外部地连接的示意图:
在缺省的条件下,CPU的逻辑地与大地是相通的,如果地不好就会影响到CPU的逻辑地,另外系统中多个电源如果不等电位,干扰电流也可能会流经背板总线影响到CPU的逻辑地(需要具体查看连线),此外信号线、通信电缆与变频电缆在相同的线槽中布线,耦合的干扰信号同样会影响到CPU的逻辑地,所以信号线的屏蔽层在进出电气柜时要先接地而不是通过CPU的机架接地。
针对上面可能对背板总线造成影响的几种干扰,可以简单的进行整改(问题往往都是由一种干扰引起):
1)将背板总线上的连接片(机架左端)拆除,使大地和逻辑地分开。方法简单,如果问题不在出现,可能问题就消除了。
2)如果CPU不停机了,但是有的模块由于电位不等而接收不到信号,例如DI模块,这时需要将供给模块的多个电源(可能由多个24V电源供电)的M端进行等电位连接,然后再次连接到CPU的逻辑地。如果逻辑地与大地未分开,需要就近连接到大地上。
3)如果还有问题,需要将信号线和通信电缆与变频电缆分开,至少20厘米
在西门子plc中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。
怎样来提高PLC程序运行速度,可以采用以下几种编程方法,仅供参考:
1:根据工程实际需求,进行功能块规划,编写子程序
在PLC中,子程序是为一些特定的控制目的编制的相对独立的程序。执行子程序调用指令CALL等,如果条件不满足子程序调用时,程序的扫描就仅在主程序中进行,不再去扫描这段子程序,这样就减少了不必要的扫描时间。
2:用字或双字数据传送给DO点方法来控制输出
在PLC的应用中通常都会有大量的输出控制,用字或双字数据传送给DO点方法来控制输出可以提高速度,只要根据实际应用的要求,合理分配输出地址,变换控制输出控制字,可以大大减少西门子plc程序执行的步数,从而加快PLC的程序运行速度。
3:脉冲触发SET、RESET
PLC中,使用SET指令只执行一次即可,不必每次扫描都执行这个指令,很适合与脉冲输出(PLS/PLF)指令配合使用。有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间
4:避免了类型转换,方法如下:
以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。
为了避免使用时混淆,好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
b----字节型变量(byte)
w----字型变量(word)
d----双字变量(double)
r----实型变量(real)
f----位变量(flag)
btn---自复位按钮式输入(button)
sw----切换开关或自锁按钮输入(switch)
sig---传感器、编码等电平信号输入(signal)
rly---输出继电器位(relay)
……
当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
假如有一个字类型变量名为VarName,为使用前面的转换技巧,我们可以这样定义:
wVarName----VW2
dVarName----VD0
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有超过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换