产品描述
西门子模块6ES7222-1HD22-0XA0接线方法
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。
则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
本方法可以较大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。
关于*3点"使用SET指令只执行一次即可,不必每次扫描都执行这个指令,有些工程人员忽视了这个问题,使用了常规的方法来驱动SET指令,无意中增加了PLC程序扫描运行时间"不是很理解,能不能说得细一点。
1:如果在ob里编写子程序段,是扫描的,但是如果您编写为FC调用,那么在FC的调用条件没有满足时,FC中的程序暂时不执行。这也是我所说节省时间的意思。
2:PLC的执行步数根据程序长短会不同,扫描时间会根据执行步数的不同而不同,如果用一个mov指令完成8个数字量输出的控制,当然比用8个mov指令完成8个数字量输出的控制所需要的程序步数少。
4:避免了类型转换,方法如下:
以S7-200为例,它的内存格式与我们常用的PC机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在VW2,同时保持VW0的值为零。则程序中可以用VW2以字型访问该变量,同时也可以VD0以双字型访问,避免了类型转换。
为了避免使用时混淆,较好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:b----字节型变量(byte)
w----字型变量(word)
d----双字变量(double)
r----实型变量(real)
f----位变量(flag)
btn---自复位按钮式输入(button)
sw----切换开关或自锁按钮输入(switch)
sig---传感器、编码等电平信号输入(**)
rly---输出继电器位(relay)
……
当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
如有一个字类型变量名为VarName,为使用的转换技巧,我们可以这样定义:
wVarName----VW2
dVarName----VD0
在程序初始化时将VW0清零(如果是不需要记忆的变量,直接将dVarName清零也可)或者在数据块中将VW0设置为零。则以后需要以字类型访问变量时就用wVarName,需要以双字类型访问变量时就用dVarName。完全不需要类型转换。
本方法可以较大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用VW0。但S7-200的RAM空间很大,一般是用不完的,以226为例,有多达10K的RAM,偶从来没有**过1K。这些RAM都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换PLC断电保持有以下几种方法:
1、V区可以在系统块里设置相应的保持字节。如果没有电池卡,数据将保持约200小时.(是靠内部**级电容来维持的),电容没电了,相应数据丢失。
2、V区可以在系统块里设置相应的保持字节。安装电池卡后,数据将保持200天左右,电池卡没电后,相应数据丢失。
3、在数据块里写入数据,能保证在任何时候丢电的情况下,当PLC上电时,能自动写入相应区域。(不适用于经常修改的数据)
4、用程序将数据写入*存储区。(此方法慎用,频繁写入会导致PLC报废)
5、用传送指令将出厂数据恢复到相应地址。
如果是放在M区的话,这里有14个字节只要在系统块设定了保持的话就会自动写eeprom保持。
如果是放在V区的话,可以在菜单有个地方找到一个条目,“从RAM创建数据块”。创建之后这数据就编程数据块受到eeprom的保持。并且可以作为以后的上下载用。但是不需要保持的一些过程数据也会因而被eepROM保持。会造成停电时间过长的时候,开机被写成这个数据块的内容。要注意这个影响。
开关量:开关量只有两种状态,0、1,包括开入量和开出量,反映的是状态。
数字量:数字量由多个开关量组成。如三个开关量可以组成表示八个状态的数字量。
模拟量:模拟量是连续的量,数字量是不连续的。反映的是电量测量数值(如电流、电压)。
1、开关量:为通断信号,无源信号,电阻测试法为电阻0或无穷大;
也可以是有源信号,专业叫法是阶跃信号,就是0或1,可以理解成脉冲量
版主说的好,多个开关量可以组成数字量
2、数字量:有0和1组成的信号类型,通常是经过编码后的有规律的信号。和模拟量的关系是量化后的模拟量。
3、模拟量:连续的电压,电流等信号量,模拟信号是幅度随时间连续变化的信号,其经过抽样和量化后就是数字量。
4、脉冲量:在瞬间电压或电流由某一值跃变到另一值的信号量。在量化后,其连续规律的变化就是数字量,如果其由0变成某一固定值并保持不变,其就是开关量
开关量主要指开入量和开出量,是指一个装置所带的辅助点,譬如变压器的温控器所带的继电器的辅助点(变压器**温后变位)、阀门凸轮开关所带的辅助点(阀门开关后变位),接触器所带的辅助点(接触器动作后变位)、热继电器(热继电器动作后变位),这些点一般都传给PLC或综保装置,电源一般是由PLC或综保装置提供的,自己本身不带电源,所以叫无源接点,也叫PLC或综保装置的开入量。
数字量定义为:在时间和数值上都是断续变化的离散信号。
模拟量定义为:在时间和数值上都是连续变化的信号。
较基本的数字量就是0和1,较基本来说即指反映到开关上就是指一个开关的打开(0)或闭合(1)状态,开关量是无源的,即它需要装置输出电源对它进行(这也就是装置的开入量,如综保装置的非电量输入即是一个外部提供的开入量);也可以用0和1进行编码,编成各种通讯码。
模拟量即指经PT、CT等传送过来的电压、电流、频率等电量信号;压力传感器经压力变送器、液位传感器经液位变送器、流量传感器经流量变送器、热电偶或热电偶经温度变送器等传送过来的4-20mA(电Ⅲ型仪表)信号等就是模拟量。综保装置能检测电量(经PT、CT等传送过来的电压、电流、频率等信号,即模拟量)和非电量信号(变压器的轻瓦斯、重瓦斯、**温信号,即非电量,也就是开关的打开和闭合)
开关量、数字量、脉冲量。
1、直接测量到的是开关量、模拟量。
开关量:反映的是状态信号(如开关开、合)。
模拟量:反映的是电量测量数值(如电流、电压)。
2、脉冲量一般是积分量(如电度量),不能直接测量到,需要经过测量仪表进行运算得到。
3、接测量到的开关量、数字量、脉冲量进行调制、数字编码,在通讯通道中传输。
以前也有用模拟信号来传输的,现在一般都是用数字信号来传输。
4、调度端解调信号,还原信息。
把数字量和数字信号分清楚就很明了
数字量相对的是模拟量,模拟信号。
开关量、脉冲量都属于数字信号
在时间上和数量上都是离散的物理量称为数字量。把表示数字量的信号叫数字信号。例如:
用电子电路记录从自动生产线上输出的零件数目时,每送出一个零件便给电子电路一个信号,使之记1,而平时没有零件送出时加给电子电路的信号是0,所在为记数。可见,零件数目这个信号无论在时间上还是在数量上都是不连续的,因此他是一个数字信号。较小的数量单位就是1个。
在时间上或数值上都是连续的物理量称为模拟量。把表示模拟量的信号叫模拟信号。例如:
热电偶在工作时输出的电压信号就属于模拟信号,因为在任何情况下被测温度都不可能发生突跳,所以测得的电压信号无论在时间上还是在数量上都是连续的。而且,这个电压信号在连续变化过程中的任何一个取值都是具体的物理意义,即表示一个相应的温度。
1、数字量
在时间上和数量上都是离散的物理量称为数字量。把表示数字量的信号叫数字信号。把工作在数字信号下的电子电路叫数字电路。
例如:
用电子电路记录从自动生产线上输出的零件数目时,每送出一个零件便给电子电路一个信号,使之记1,而平时没有零件送出时加给电子电路的信号是0,所在为记数。可见,零件数目这个信号无论在时间上还是在数量上都是不连续的,因此他是一个数字信号。较小的数量单位就是1个。
2、模拟量
在时间上或数值上都是连续的物理量称为模拟量。把表示模拟量的信号叫模拟信号。把工作在模拟信号下的电子电路叫模拟电路。
例如:
热电偶在工作时输出的电压信号就属于模拟信号,因为在任何情况下被测温度都不可能发生突跳,所以测得的电压信号无论在时间上还是在数量上都是连续的。而且,这个电压信号在连续变化过程中的任何一个取值都是具体的物理意义,即表示一个相应的温度。
开关量包括开入量和开出量,是数字信号,只有0和1两种状态,表示继电器接点的闭合或断开或者一些断路器的辅助接点。开入量就是保护装置的信号输入,采集现场开关、闸等位置信息。
微机保护里的开入量和开出量指的是数字量即继电器接点的闭合或断开或者一些断路器的辅助触点的闭合与断开。
具体来说就是输入到微机保护里的开关量就是开入量,而微机保护CPU控制单元发出指令时,继电器闭合或断开输出到设备上的就是开出量。 PLC除了用于开关量控制、定时、计数的基本指令外,还有大量的应用指令,有的plc的应用指令多达数百条。
对于应用指令,初学者非常困惑,不知道哪些指令重要、哪些指令常用,应该怎样学习它们。这些指令可以分为下面几种类型:
1.属于几乎所有计算机语言都有的指令,例如数据的传送、比较、移位、循环、数学运算、字逻辑运算、数据类型转换等指令。
这类指令非常重要,它们与计算机的基础知识(例如数制、数据类型、寻址方式等)有关,应通过例子和实验了解这些指令的基本功能。学好一种型号的plc的这类指令,再学别的plc的同类指令就很容易了。
2.与顺序控制程序有关的指令。这类指令中,fx的stl指令设计得较好,用stl指令设计的梯形图与顺序功能图之间有明确的对应关系,因此易于理解和使用,设计的程序比其他方法设计的短,可以节约大量的设计时间。
s7-200的scr(顺序控制继电器)指令和欧姆龙的步指令(step/snxt)也用于编写顺序控制程序。
建议在学习这类指令之前,首先学习顺序功能图(见作者编写的plc教材)。
3.与plc的高级应用有关的指令,例如与pid控制、运动控制、高速输入/高速输出、通信有关的指令,这些指令也很重要。某些指令需要学习有关的专门知识,才能正确的理解和使用它们。
4.与plc特定的硬件、软件有关的指令,例如读写特殊模块和模拟电位器的指令,s7-300/400读取数据块长度和编号的指令等。
5.与某些特定的工程应用有关的指令。例如fx的凸轮顺控指令和旋转工作台控制指令。
学习应用指令时,可以首先按指令的分类浏览所学的plc有哪些应用指令,它们用来干什么,便于在需要的时候能找到手册或帮助中的指令说明。初学时没有必要花大量的时间去了解应用指令的详细使用方法,更没有必要记硬背它们。重点是了解指令的基本功能。
可以采用需要什么学什么的方法,重点学习读程序、编程序时遇到的和需要使用的指令,没有用到的指令暂时不管它。在阅读或编写程序时如果遇到不常用的指令,可以通过编程手册了解它们的详细使用方法。
如果编程软件有指令的在线帮助,选中指令列表或程序中的某条指令,按一下f1键,就可以看到该指令的大量细节,例如指令各参数的数据类型、可用的存储区、参数的意义,指令的功能和应用实例、指令的执行对状态字或有关标志位的影响等。
与学外语不能只靠背单词,应主要通过阅读和会话来学习一样,要学好plc的应用指令,也离不开实践。一定要在读程序和编程序的过程中学习应用指令。
有的指令实际上较少使用,它们属于“休眠”的指令,学习的时候可以不管它们。万一在读程序时遇到它们,可以通过指令的在线帮助或查手册来了解它们。
产品推荐