西门子绵阳PLC模块总代理
尽量用子程序参数代替全局内存,使用子程序参数,尽量减少库对全局内存的依赖性。可以库指令使用的内存。例如,您可以有一个计算四个数加法的子程序,并将该MT8100IE的输出存储在一个V内存 位置。程序的其余部分则会读取该V内存位置,以便确定计算的结果。如果您希望将该子程序放入库,考虑在子程序中增加一个输出参数,并将计算结果存储在该参 数中。这样就无须V内存位置,并允许您决定存储结果的位置。
使用临时变量进行计算,将临时变量用于计算和临时结果可尽量减少用户库对全局内存的使用。临时变量(在局部变量表中对子程序和中断例行程序进行定义)从西门子plc的局部内存分配,不与项目发生冲突。局部内存并非持久性内存,无法用于在指令调用之间保存数据。其使用期是说明局部内存的子程序或中断例行程序的执行阶 段。
需要使用V内存时,有时必须在包括在指令库中的子程序和中断例行程序中使用全局V内存。此时,为在这些POU中使用的所有V内存说明符号,并在程序中使用符号。当库被编译后,这些符号被用于决定库需要的内存量。
6ES7312-5BF04-0AB0 | CPU312C,32K内存 10DI/6DO |
6ES7313-5BG04-0AB0 | CPU313C,64K内存 24DI/16DO / 4AI/2AO |
6ES7313-6BG04-0AB0 | CPU313C-2PTP,64K内存 16DI/16DO |
6ES7313-6CG04-0AB0 | CPU313C-2DP,64K内存 16DI/16DO |
6ES7 313-6CF03-0AM0 | CPU313C-2DP,64K内存 16DI/16DO组合件(6ES7 313-6CF03-0AB0+6ES7 392-1AM00-0AA0) |
6ES7 314-1AG13-0AB0 | CPU314,96K内存 |
6ES7 314-1AG14-0AB0 | CPU314,128K内存 |
6ES7314-6BH04-0AB0 | CPU314C-2PTP 96K内存 24DI/16DO / 4AI/2AO |
6ES7314-6CH04-0AB0 | CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO |
6ES7 314-6EH04-0AB0 | CPU314C-2PN/DP 192K内存/24DI/16DO/ 4AI/2AO |
6ES7 314-6CG03-9AM0 | CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO组合件(6ES7 314-6CG03-0AB0+6ES7 392-1AM00-0AA0*2) |
6ES7 315-2AG10-0AB0 | CPU315-2DP, 128K内存 |
6ES7 315-2AH14-0AB0 | CPU315-2DP, 256K内存 |
6ES7315-2EH14-0AB0 | CPU315-2 PN/DP, 256K内存 |
6ES7317-2AK14-0AB0 | CPU317-2DP,512K内存 |
需要I/O地址时,有时必须在包括在指令库中的子程序和中断例行程序中使用实际I/O地址。必要时,这些POU中使用的所有I/O地址符号,并在应用程序中使用这些符号。
2)将POU注释用于文档编制
如果选择用密码保护库指令,库用户则无法看到指令中的源码。他们能够看到构成库的每个子程序和中断例行程序的POU指令。POU注释是记录每条指令功能的位置。请考虑使用POU注释提供下列详细信息:
1.该指令具体执行什么功能?POU注释是给出指令功能说明的位置。
2.如何调用指令?例如,如果指令在*扫描时调用,或者如果指令依赖于成功地完成另一条指令,应当使用POU注释记录这些指令的详细用法。
3.指令使用何种全局内存?如果指令直接参考全局内存,POU内存应当提醒用户这一用法,以便用户对程序进行设计,以避免内存访问冲突。
4.指令如何指示错误?很多指令需要通过输出参数或全局内存位置指示错误条件。向用户提供可能产生的错误说明以及如何纠正这些错误的说明会很有帮助。
3)分发用户库
库编译输出是一个磁盘文件(mwl文件),该文件包含STEP 7-Micro/WIN识别和使用指令库所需的所有内容。如果希望向其他STEP 7-Micro/WIN用户分发用户库,可以将该文件复制,为用户提供一份文件的拷贝。
西门子PLC常用的功能指令
1、串联电路块的并联连接指令OLD
两个或两个以上的接点串联连接的电路叫串联电路块。串联电路块并联连接时,分支开始用LD、LDN指令,分支结束用OLD指令。OLD指令与后述的ALD指令均为无目标元件指令,而两条无目标元件指令的步长都为一个程序步。OLD有时也简称或块指令。
2、并联电路的串联连接指令ALD
两个或两个以上接点并联电路称为并联电路块,分支电路并联电路块与前面电路串联连接时,使用ALD指令。分支的起点用LD、LDN指令,并联电路结束后,使用ALD指令与前面电路串联。ALD指令也简称与块指令,ALD也是无操作目标元件,是一个程序步指令。
3、输出指令=
1、=输出指令是将继电器、定时器、计数器等的线圈与梯形图右边的母线直接连接,线圈的右边不允许有触点,在编程中,触点以重复使用,且类型和数量不受限制。
4、置位与复位指令S、R
S为置位指令,使动作保持;R为复位指令,使操作保持复位。从的位置开始的N个点的寄存器都被置位或复位,N=1~255如果被复位的是定时器位或计数器位,将清除定时器或计数器的当前值。
5、跳变触点EU,ED
正跳变触点检测到一次正跳变(触点的入信号由0到1)时,或负跳变触点检测到一次负跳变(触点的入信号由1到0)时,触点接通到一个扫描周期。正/负跳变的符号为EU和ED,他们没有操作数,触点符号中间的”P”和”N”分别表示正跳变和负跳变。
西门子PLC局部变量的说明类型 对局部变量赋值的类型取决于在其中赋值的POU。西门子PLC的主程序(OB1)、中断例行程序和子例行程序可使用临时(TEMP)变量。
说明类型 说明
IN 调用POU提供的输入参数。
OUT 返回调用POU的输出参数。
IN_OUT 数值由调用POU提供的参数,由西门子PLC的子例行程序修改,返回调用POU。
TEMPORARY 临时保存在局部数据堆栈中的临时变量。一旦POU*执行,临时变量数值则无法再用。在两次POU执行之间,临时变量不保持其数值。
局部变量数据类型检查 返回
将局部变量作为仿西门子PLC的子例行程序参数传递时,在该子例行程序局部变量表中的数据类型必须与调用 POU中数值的数据类型相匹配
举例:
您从OB1调用SBR0,将称为INPUT1的全局符号用作子例行程序的输入参数。
在SBR0的局部变量表中,您已经将一个称为FIRST的局部变量定义为输入参数。
当0B1调用SBR0时,INPUT1数值被传递至FIRST。
INPUT1和FIRST的数据类型必须匹配。
如果INPUT1是实数,FIRST也是实数,则数据类型匹配。如果INPUT1是实数,但FIRST是整数,则数据类型不匹配
高速处理指令可以按新的输入输出信息进行程序控制,并能有效利用数据高速处理能力进行中断处理。
一、与输入输出有关的指令
1.输入输出刷新指令
输入输出刷新指令REF(Refresh)可用于对指定的输入输出口立即刷新。
2.刷新和滤波时间常数调整指令
3.矩阵输入指令
二、高速计数器指令
高速计数器指令包括高速计数器比较置位HSCS(Set by High SpeedCounter)、高速计数器比较复位HSCR(Reset by High SpeedCounter)以及高速计数器区间比较HSZ(Zone compare for High SpeedCounter)指令,它们均为32位指令,
三、脉冲密度与输出指令
1.脉冲密度速度检测指令
脉冲密度速度检测指令SPD(SpeedDetect)用来检测给定时间内从编码器输入的脉冲个数,并计算出速度。
2.脉冲输出与脉宽调制指令
脉冲输出指令PLSY(Pluse Output)用于产生指定数量和频率的脉冲。
3.可调速脉冲输出指令
可调速脉冲输出指令PLSR(PulseR)的源操作数和目的操作数的类型与PLSY的指令相同,只能用于晶体管输出型plc的Y000或Y001,该指令只能使用一次
数据处理指令包含批复位指令、编码、译码指令及平均值计算指令等。其中批复位指令可用于数据区的初始化,编、译码指令可用于字元件中某个置1位的位码的编译。
一、区间复位指令
区间复位指令ZRST(ZoneReset)将D1~D2指定的元件号范围内的同类元件成批复位。
二、解码与编码指令
解码(译码)指令DECO(Decode)的位源操作可以取X、Y、M和S,位目的操作数可以取Y、M和S。字源操作数可以取K、H、T、C、D、V和Z,字目的操作数可以取T、C和D,n=1~8,只有16位运算。编码指令ENCO(Encode)只有16位运算。
三、求置ON位总和与ON位判别指令
位元件的值为1时称为ON,求置ON位总和指令SUM统计源操作数中为ON的位的个数,并将它送入目标操作数。
四、平均值指令
平均值指令是将S中指定的n个源操作数据的平均值存入目标操作数D中,舍去余数。
五、报警器置位复位指令
报警器置位指令ANS(AnnunciatorSet)的源操作数为T0~T199,目标操作数为S90