西门子电抗器6SE7022-6ES87-1FE0
PLC的编程与继电器-接触器控制电路十分相似,主要原因是PLC编程时大致沿用了继电器-接触器控制电路的元件符号,仅个别之处有些不同。同时,信号的输入/输出功能上也是相同的,但PLC的控制与继电器-接触器的控制又有不同之处,主要表现在以下几个方面。
1)控制逻辑
继电器-接触器控制系统是采用硬件接线实现的,利用继电器或接触器机械触点的串联或并联,及延时继电器的滞后动作等组合形成控制逻辑,只能完成既定的逻辑控制,其接线多而复杂、体积大、功耗大、故障率高,一旦系统构成后,想改变或增加功能都很困难。另外,继电器触点数目有限,因此灵活性和扩展性较差。而PLC控制系统采用存储逻辑,其控制逻辑是以程序方式存储在内存中,要改变控制逻辑,只需改变程序即可,故称为“软接线”,其接线少,体积小,且灵活性和扩展性都很好。PLC由中大规模集成电路组成,功耗小。
2)工作方式
继电器-接触器控制系统采用“并行”的工作方式,即电源接通时,电路中各继电器同时处于受控状态,并联电路同时接通。而PLC是采用循环扫描方式工作,程序中各元件是按扫描顺序依次执行的,是一种“串行”工作方式。
3)控制速度
继电器-接触器控制系统控制逻辑是依靠触点的机械动作实现控制,工作频率低,触点的开闭动作一般在几十毫秒量级。另外,机械触点有抖动现象。而PLC控制系统是由程序指令控制半导体电路来实现控制,属于无触点控制,速度快,一般一条用户指令的执行时间在微秒数量级,且不会出现抖动。
4)定时与计数控制
继电器-接触器控制系统是靠时间继电器的滞后动作实现延时控制,而时间继电器存在定时精度不高、定时范围窄、易受环境温湿度变化的影响、调整时间困难等问题,并且继电器控制系统不具备计数功能。而PLC控制系统用半导体集成电路作定时器,时基脉冲由晶体振荡器发生,精度高,调整时间方便,不受环境影响。另外PLC系统具备计数功能。
5)可靠性和可维护性
继电器-接触器控制系统中使用大量的机械触点,硬件接线多,触点开闭时容易受到电弧的损坏,且有机械磨损,寿命短,所以可靠性较差,线路复杂,维护工作量大。而PLC控制系统采用微电子技术,大量的开关动作由无触点的半导体电路来完成,体积小、寿命长、可靠性高,外部线路简单,维护工作量小。PLC还配有自检和监督功能,还能动态地监控程序的执行情况,为现场调试和维护提供了方便
PLC编程算法(1)
PLC中无非就是三大量:开关量、模拟量、脉冲量。只在搞清楚三者之间的关系,你就能熟练的掌握PLC了。
1、开关量也称逻辑量,指仅有两个取值,0或1、ON或OFF。它是较常用的控制,对它进行控制是PLC的优势,也是PLC较基本的应用。
开关量控制的目的是,根据开关量的当前输入组合与历史的输入顺序,使PLC产生相应的开关量输出,以使系统能按一定的顺序工作。所以,有时也称其为顺序控制。
而顺序控制又分为手动、半自动或自动。而采用的控制原则有分散、集中与混合控制三种。
2、模拟量是指一些连续变化的物理量,如电压、电流、压力、速度、流量等。
PLC是由继电控制引入微处理技术后发展而来的,可方便及可靠地用于开关量控制。由于模拟量可转换成数字量,数字量只是多位的开关量,故经转换后的模拟量,PLC也完全可以可靠的进行处理控制。
由于连续的生产过程常有模拟量,所以模拟量控制有时也称过程控制。
模拟量多是非电量,而PLC只能处理数字量、电量。所有要实现它们之间的转换要有传感器,把模拟量转换成数电量。如果这一电量不是标准的,还要经过变送器,把非标准的电量变成标准的电信号,如4—20mA、1—5V、0—10V等等。
同时还要有模拟量输入单元(A/D),把这些标准的电信号变换成数字信号;模拟量输出单元(D/A),以把PLC处理后的数字量变换成模拟量——标准的电信号。
所以标准电信号、数字量之间的转换就要用到各种运算。这就需要搞清楚模拟量单元的分辨率以及标准的电信号。例如:
PLC模拟单元的分辨率是1/32767,对应的标准电量是0—10V,所要检测的是温度值0—100℃。那么0—32767对应0—100℃的温度值。然后计算出1℃所对应的数字量是327.67。如果想把温度值**到0.1℃,把327.67/10即可。
模拟量控制包括:反馈控制、前馈控制、比例控制、模糊控制等。这些都是PLC内部数字量的计算过程。
3、脉冲量是其取值总是不断的在0(低电平)和1(高电平)之间交替变化的数字量。每秒钟脉冲交替变化的次数称为频率。
PLC脉冲量的控制目的主要是位置控制、运动控制、轨迹控制等。例如:脉冲数在角度控制中的应用。步进电机驱动器的细分是每圈10000,要求步进电机旋转90度。那么所要动作的脉冲数值=10000/(360/90)=2500。
PLC编程算法(2)——模拟量的计算
1、-10—10V。-10V—10V的电压时,在6000分辨率时被转换为F448—0BB8Hex(-3000—3000);12000分辨率时被转换为E890—1770Hex(-6000—6000)。
2、0—10V。0—10V的电压时,在12000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
3、0—20mA。0—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
4、4—20mA。4—20mA的电流时,在6000分辨率时被转换为0—1770Hex(0—6000);12000分辨率时被转换为0—2EE0Hex(0—12000)。
以上仅做简单的介绍,不同的PLC有不同的分辨率,并且您所测量物理量实现的量程不一样。计算结果可能有一定的差异。
注:模拟输入的配线的要求
1、使用屏蔽双绞线,但不连接屏蔽层。
2、当一个输入不使用的时候,将VIN和COM端子短接。
3、模拟信号线与电源线隔离(AC电源线,高压线等)。
4、当电源线上有干扰时,在输入部分和电源单元之间安装一个虑波器。
5、确认正确的接线后,首先给CPU单元上电,然后再给负载上电。
6、断电时先切断负载的电源,然后再切断CPU的电源。
PLC编程算法(3)——脉冲量的计算
脉冲量的控制多用于步进电机、伺服电机的角度控制、距离控制、位置控制等。以下是以步进电机为例来说明各控制方式。
1、步进电机的角度控制。首先要明确步进电机的细分数,然后确定步进电机转一圈所需要的总脉冲数。计算“角度百分比=设定角度/360°(即一圈)”“角度动作脉冲数=一圈总脉冲数*角度百分比。”
公式为:
角度动作脉冲数=一圈总脉冲数*(设定角度/360°)。
2、步进电机的距离控制。首先明确步进电机转一圈所需要的总脉冲数。然后确定步进电机滚轮直径,计算滚轮周长。计算每一脉冲运行距离。较后计算设定距离所要运行的脉冲数。
设定距离脉冲数=设定距离/[(滚轮直径*3.14)/一圈总脉冲数]
3、步进电机的位置控制就是角度控制与距离控制的综合。
以上只是简单的分析步进电机的控制方式,可能与实际有出入,仅供各位同仁参考。
伺服电机的动作与步进电机的一样,但要考虑伺服电机的内部电子齿轮比与伺服电机的减速比
71:对模拟量模块而言,如何处理未使用的通道?
如果模块带有MANA : 短接所有的未使用通道的M-到 MANA ,如果可能,连接MANA 到接地极,把模块的测量模式设置为: 0 - 20/ + -20mA. ,短接未使用的COMP+/COMP-. IC+ / IC-可以保持悬空。
如果模块不带有 MANA : 把所有未使用的通道M-连接到使用通道的M-.等在输入端UCM > 2.5V 时,连接所有未使用的 M-到cpu的接地或系统的接地. 把模块的测量模式设置为: 0 - 20/ + -20mA. ,短接未使用的COMP+/COMP-. IC+ / IC-可以保持悬空。
对于SM 331-7NF10-0AB0模块在4通道模式:禁止未用的通道,这些输入端悬空即可
对于Ex模块SM 331-7RD:未使用的通道可以保持悬空72:上位机与plc进行通讯,硬件都需要哪些?
72:哪些软件里含有CP5511,CP5512,CP5611,RS232 PC-Adapter 的驱动?
如果安装了相应的软件后包含“Set PG/PC Interface …”组件,那么这些软件都含有CP5511,CP5512,CP5611,RS232 PC-Adapter 的驱动,只需在“Set PG/PC Interface …”->“Select…”->选择相应的驱动,然后“Install-->”即可。
具体的软件有Step7,Step7 MicroWin,Simatic Net,WinCC,Protool,Flexible,PCS7。
73:当试图通过TeleService建立PRODAVE MPI和样列程序之间的通讯时,为什么会出现出错消息4501?
调制解调器没有响应,并产生了出错消息4501。在这个情况下,工作站的规范不正确。 在TeleService对话框中检查工作站的名称和工作站(standort)规范。此处可能有个不正确的缺省设删除“station”(“standort”)域中的缺省名,或输入正确的工作站名。那么就可以使用调制解调器在PRODAVE MPIY和TeleService之间建立连接。
74:是否可以将数据块的当前值作为初始值从AS传送到项目中?
可以。从AS中“ONLINE,打开相关数据块(DB).使用软盘图标“OFFLINE”保存DB.
通过“File > Generate Source”在DB中产生STL源代码. 通过手动操作将BEGIN和END_DATA_BLOCK行之间的当前值与相应的声明(初始值)逐行 连接起来,从而得到下列声明语句:
STRUCT
wordVar : WORD := W#16#ABCD;
...
END_STRUCT ;
编译STL源代码。
75:在通讯任务中,在哪些OB中必须调用SFB?
在启动型OB(如用于S7-300的OB100和用于S7-400的OB100和OB101)和循环模式OB(OB1)中,必须调用数据通讯或程序管理(把PLC切换到STOP或RUN)所需的所有SFB。 OB100是启动型OB,并在重新启动CPU时运行。例如,在该OB中,用标记M1.0和M0.1来释放通讯触发器。
76:怎样编程间接访问一个ARRAY类型变量的元素?
一个位、字节或者字符域的尺寸是按照字节限制排列的——在所有其它情况下是按照字对齐的。表T6-1中给出了一个域的存储示例。操作系统计算域中单个元素末端位置的位地址。域被分配到从下一个字地址(或字节地址)。下一个数据类型从下一个整字开始(或者整字节).
声明部分:
在声明部分,必须定义一个与将被间接寻址的ARRAY有着同一结构的ARRAY。不一定非要将ARRAY声明为IN-OUT变量;也可以声明为TEMP、IN或OUT变量。
网络:
域宽度(OFFSET)在网络中定义。ARRAY中的单个元素的小常规数据宽度是一个字节;即使在两个变量之间定义一个BOOL。有必要确定相关的域的宽度和确定下一个期望域的起始地址。可使用下面的算法: 地址(指数):b = 元素长度*(指数 - 1)
创建具有不同数据类型的结构时,必须注意,在特定的环境下可能会自动插入填充字节。
保存ARRAY数据类型
示例:ARRAY 【1..2,1..3】 OF 整数 将生成下列域:
多维域是按照顺序保存的。在本例中整数 【1,1】后面是整数 【1,2】,整数 【1,3】后面是整数 【2,1】。
77:STEP 7 以哪种格式存储POINTER参数类型?
STEP 7以 6 个字节保存POINTER参数。显示了用于保存POINTER参数类型的内存区域以及每个字节中保存的数据。POINTER参数类型保存了下列信息: DB号(如果DB中没有保存任何数据时为0)。 CPU中的内存区域(表格中列出了不同内存区域的十六进制代码)。
数据的地址(按照Byte.Bit格式)。
如果将形式参数声明为POINTER参数类型,则只需要内存区域和地址。STEP 7自动将输入项目的格式转换为指针格式。
78:因为总是要*调用Alarm8P(SFB35)块,怎样避免OB 1初始化过程花费太长时间?
激活(*调用)报警块Alarm(SFB33)、A larm_8(SFB34)和Alarm_8P(SFB35)比简单地执行作业检查需要多花费 2 到 3 倍的运行时间。当传送告警时,块的运行时间也会同样长。 然而警报通常不会成群发生,当编程时,需要注意警报块的*调用,因为此处用到的所有块需要很长的运行时间,因此被调用OB的运行时间在某些情况下将显著增加。将警报块的*调用移动到OB ,可以将较长的运行时间转换到启动过程。此处处理时间也会较长,但是由于与模块的参数设置同时进行,启动时间不会太长。
79:当不能卸载STEP 7时,该怎么办?
设法通过控制面板卸载STEP 7。如果安装文件已损坏,卸载程序常会出错,并伴随出错信息。 另外STEP 7 CD包含文件Simatic STEP7.msi。可以通过这个文件卸载STEP 7。
80:加密的300PLC MMC处理方法?
如果您忘记了您在S7-300CPU Protection属性中所设定的密码,那么您只能够采用siemens的编程器PG(6ES7798-0BA00-0XA0)上的读卡槽或采用带USB接口的读卡器(USB delete?S7 Memory Card?prommer 6ES7792-0AA00-0XA0),选择SIMATIC Manager界面下的菜单 File 选项删除MMC卡上原有的内容,这样MMC就可以作为一个未加密的空卡使用了,但无法对MMC卡进行jie密,读取MMC卡中的程序或数据。