9
在S7-1500 PLC巾,程序中的块主要包括组织块OB、函数FC、函数块FB和数据块DB。数据块DB是用来存储用户数据,而OB、FC和FB则是用来存储用户程序代码的,也称代码块。组织块OB是用户和PLC之间的程序接口,由PLC来调用,而函数FC和函数块FB则可以作为子程序由用户来调用。FC或FB被调用时,可以与调用块之间没有参数传递,实现模块化编程,也可以存在参数传递,实现参数化编程(也称结构化编程)。
根据变量在程序中的使用范围,可将变量分为全局变量和局部变量。全局变量可以被所有代码块访问,而局部变量则只能被某个块访问,无法被所有块访问。
循环左移”指令( ROL)将输入IN中操作数的内容按位向左循环移位,用左侧挤出的位填充右侧因循环移位空出的位,其中输入参数N用于*将IN操作数循环移位的位数,移位结果存储在输出OUT中。当输入N的值为“0”时,则输入IN的值将复制到输出OUT的操作数中;如果参数N的值大于可用位数,则输入IN中的操作数值仍会循环移动*位数个位。图5-140说明了如何将DWord数据类型操作数的内容向左循环移动3位。
“循环左移”指令( ROL)将输入IN中操作数的内容按位向左循环移位,用左侧挤出的位填充右侧因循环移位空出的位,其中输入参数N用于*将IN操作数循环移位的位数,移位结果存储在输出OUT中。当输入N的值为“0”时,则输入IN的值将复制到输出OUT的操作数中;如果参数N的值大于可用位数,则输入IN中的操作数值仍会循环移动*位数个位。图5-140说明了如何将DWord数据类型操作数的内容向左循环移动3位。
“左移”指令( SHL)将输入IN中操作数的内容按位向左移位,用零填充操作数右侧部分因移位空出的位,输人参数N用于*将IN中操作数移位的位数,移位后的结果存储并在输出OUT中。当输入N的值为“0”时,则输入IN的值将按原样复制到输出OUT的操作数中;如果输入N的值大于可用位数,则输入IN中的操作数值将向左移动可用位数个位。图5-138展示将Word数据类型操作数的内容向左移动6位的过程。
模拟量输出(AO)模块SM332用于将CPU送给它的数字信号转换为成比例的电流信号或电压信号,对执行机构进行调节或控制,其主要组成部分是D/A转换器,可以用传送指令“T PQW...”向模拟量输出模块写入要转换的数值。
SM332有多种不同型号,如4AOx12位模块、2AOx12位模块和4AOx16位模块,分别为4通道的12位模拟量输出模块、2通道的12位模拟量输出模块、4通道的16位模拟量输出模块。
模拟量输出模块未通电时输出一个0mA或0V的信号。处于RUN模式、模块有DC24V电源,且在参数设置之前,将输出**数值。进入S**模式、模块有DC24V电源时,可以选择不输出电流电压、保持最后的输出值或采用替代值。在上、下溢出时,模块的输出值均为0mA或0V。
AO模块的转换时间包括内部存储器传送数字化输出值的时间和D/A转换的时间,模拟量输出各通道的转换是按顺序进行的。
AO模块的循环时间是所有被激活模拟量输出通道的转换时间的总和。应关闭未使用的模拟量通道,以减小循环时间。
AO模块的响应时间是一个比较重要的指标,响应时间就是在内部存储器中出现数字量输出值开始到模拟输出达到规定值所用时间的总和。它和负载特性有关,负载不同(容性、阻性和感性负载),响应时间也不一样。
模拟量输出模块SM332的额定负载电压均为DC24V;模块与背板总线和负载电压均有光电隔离,使用屏蔽电缆时较远距离为200m;都有短路保护,短路电流较大25mA,较大开路电压18V;每个通道都可单独编程为电压输出或电流输出,输出精度为12位。
使用STEP 7组态工具或SFC系统功能调用,可以设定诊断中断允许、输出诊断、输出类型、输出范围及L+掉电或模块故障后的替代值等参数。输出模块的一个通道组即一个通道,如果模块中的一个通道不使用,则可以通过设定输出类型撤除该通道,并让输出保持开路。
在模拟量模块具有诊断能力和赋有适当参数的情况下,故障和错误产生诊断中断,板上的SF LED灯闪烁。SM332能对电流输出做断线检测,对电压输出做短路检测。表2-10为SM332的技术特性。
表2-10 SM332模拟量输出模块的技术特性
模拟量输入(AI)模块SM331目前有多种规格型号,如8AIx12位模块、2AIx12位模块和8AIx16位模块,分别为8通道的12位模拟量输入模块、2通道的12位模拟量输入模块、8通道的16位模拟量输入模块。它们除了通道数和转换精度不一样外,其工作原理、性能、参数设置等各方面都一样。
SM331模块中的各个通道可以分别使用电流输入或电压输入,并选用不同的量程(量程的设置可通过量程卡来设置;没有量程卡的模块,通过不同的端子接线方式设置),有多种分辨率可供选择(9~15位+符号位,与模块有关),分辨率不同转换时间也不同。模拟量转换是顺序执行的,每个模拟量通道的输入信号是被依次轮流转换的。
SM331模块的结构原理如图2-15所示。SM331模块主要由A/D转换器、多路开关、补偿电路、内部电源、光电隔离部件和逻辑电路等组成。其8个模拟量输入通道共用一个A/D转换器,通过多路开关切换被转换的通道,模拟量输入模块各输入通道的A/D转换和转换结果的存储与传送是顺序进行的。各个通道的转换结果被保存到各自的存储器,直到被下一次的转换值覆盖。可以用装入指令“L PIW--”来访问转换的结果。
图2-15 SM331模块的结构原理
通道的转换时间由基本转换时间和模块的电阻测试和断线监控时间组成,基本转换时间取决于模拟量输入模块的转换方法(如积分法和瞬时值转换法)。对于积分转换法,积分时间直接影响转换时间,积分时间可在STEP7中设置。
某一通道从开始转换模拟量输入值起,一直持续到再次开始转换的时间称为AI模块的循环时间,它是模块中所有被激活的模拟量输入通道的转换时间的总和。实际上,循环时间是对外部模拟量信号的采样间隔。为了缩短循环时间,应该使用STEP 7组态工具屏蔽掉不用的模拟量通道,同时应在硬件上将未用通道的输入端短路,从而使其不占用循环时间。
SM331的每两个输入通道构成一个输入通道组,可以按通道组任意选择测量方法和测量范围。模块上需接DC24V的负载电压L+,有反接性保护功能;对于变送器或热电偶的输入具有短路保护功能。模块与S7-300 CPU及负载电压之间是光电隔离的。表2-9为SM331模拟量输入模块的技术特性。
表2-9 SM331模拟量输入模块的技术特性
S7-300/400的CPU用16位二进制补码**数来表示模拟量值。其中较高位(*15位)为符号位,正数的符号位为0,负数的符号位为1。
模拟量模块的模拟值位数(即转换精度)可以设置为9~15位(与模块的型号有关,不包括符号位),如果模拟量值的精度小于15位,则模拟量值左移,使其较高位(符号位)在16位字的较高位(*15位),模拟量值左移后未使用的低位则填入“0”,这种处理方法称为“左对齐”。设模拟量值的精度为12位,加上符号位,未使用的低位(*0~2位)为0,相当于实际的模拟值被乘以8。
表2-8给出了模拟量输入模块的模拟量值与模拟量之间的对应关系,模拟量量程的上、下限(±**)分别对应于十六进制模拟量值6COOH和9400H(H表示十六进制数)。
表2-8模拟量输入模块的模拟量值与模拟量的对应关系
表2-8模拟量输入模块的模拟量值与模拟量的对应关系
模拟量输入模块在模块通电前或模块参数设置完成后*一次转换之前,或上溢出时,其模拟量值为7FFFH,下溢出时模拟值为8000H。上、下溢出时SF指示灯闪烁,有诊断功能的模块可以产生诊断中断。
模拟量输入模块用于将模拟量信号转换为CPU内部处理用的数字信号,其主要组成部分是A/D(Analog/Digit)转换器。模拟量输入模块的输入信号一般是模拟量变送器输出的标准直流电压、电流信号。SM331也可以直接连接不带附加放大器的温度传感器(热电偶或热电阻),这样可以省去温度变送器,不但节约了硬件成本,而且控制系统的结构也更加紧凑。
SM374 IN/OUT 16(订货号:6ES7 374-2XH01-OAAO)主要用于程序的调试,比较适合于教学,它可以仿真16 DI、16 DO、8 DI/8 DO的数字量模块。如图2-14所示为SM374的操作面板。SM374面板上有一个功能设定开关,用螺钉旋具改变功能设定开关的位置,即可仿真所需的数字量模块;有16个输入状态开关,用于输入状态的设置;有16个绿色LED指示灯,用于指示I/O状态。
图2-14 SM374仿真模块的操作面板
图2-14 SM374仿真模块的操作面板
SM374仿真模块没有列入STEP 7的模块目录中,也就是说,STEP 7不能识别仿真模块的订货号。因此,当给仿真模块的参数赋值时,必须填入被仿真模块的订货号。例如,如果将SM374设置为16点输入,则组态时需输入16DI数字量输入模块的订货号(如6ES7321-1BH02- OAAO);如果将SM374设置为16点输出,则组态时需输入16DO数字量输出模块的订货号(如6ES7 322-1BH01-OAAO);如果将SM374功能设定为8点输入和8点输出,则组态时需输入8DI/8DO数字量模块的订货号(如6ES7 323-1BH02-OAAO)。
SM323是S7-300的数字量I/O模块,它有两种型号可供选择。一种是8点输入和8点输出的模块,输入点和输出点均只有一个公共端;另一种有16点输入(8点1组)和16点输出(8点1组)。这两种模板的I/O特性相同。输入、输出的额定电压均为DC24V,输入电流为7mA,较大输出电流为0.5A,每组总输出电流为4A。输入电路和输出电路通过光电耦合器与背板总线相连,输出电路为晶体管型,有电子保护功能。