西门子PLC中央控制单元CPU416-2授权代理
西门子PLC中央控制单元CPU416-2授权代理
西门子PLC中央控制单元CPU416-2授权代理
西门子是全球闻名的自动化控制和电力设备制造商,在工业自动化领域拥有广泛的应用。PLC(可编程逻辑控制器)是其旗下的一个重要产品线。其中,S7-200、S7-300、S7-400是西门子PLC模块系列中的重要代表。
S7-200是西门子PLC模块系列中的基础型号,适用于小规模控制任务。其拥有高达14个数字输入和10个数字输出的数字I/O端口,以及2个模拟输入和1个模拟输出的模拟I/O端口。S7-300和S7-400则是更为gaoji和专叶的型号,可支持更大规模和更复杂的自动化控制系统。
这些PLC模块可用于制造、工业控制等领域。其主要功能是通过程序控制实现自动化控制系统,从而提高生产效率、降低成本和提高质量。PLC模块可以根据实际需求进行分类,包括数字、模拟、通信、运动控制等,方便用户根据实际应用进行选择。
独特的作用是,它可以集合众多传感器和执行器的信号,精却地演算所有输入和输出信号,从而实现准确地控制和操作设备系统。另外,PLC模块还可以编写控制逻辑程序,通过调整不同参数来改变系统运行状态。
S7-1500 IEC定时器创建
S7-1500定时器创建有以下几种方法:
1. 功能框指令直接拖入块中,自动生成定时器的背景数据块,该块位于“系统块>程序资源”中,参见图6。
自动生成定时器的背景数据块
2. 功能框指令直接拖入FB块中,生成多重背景。
多重背景
功能框指令直接拖入FB、FC块中,生成参数实例,从TIA博途V14开始,参见图8。
参数实例
4. 在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME(后面四个从TIA博途V11开始)类型变量,在程序中将功能框定时器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。对于线圈型指令,这是手选方法。
DB块中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1500从V2.0版本开始支持。
DB块中的定义
功能框定时器使用
线圈型定时器使用
定时器的使用
2. 如何编程自复位定时器并产生脉冲?
答:正确答案参考表4,同时附上2种常见错误编程方式。
原因:S7-1500的定时器的时间更新发生在定时器功能框的Q点或ET连接变量时,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时。即如果程序中多次使用同一背景DB的Q点,或者既使用定时器功能框的Q点或ET连接变量,又使用背景DB的Q点,以上两种情况都会造成定时器在一个扫描周期内的多次更新,可能造成定时器不能正常使用的情况。
示例 正确与否
正确
错误
多次使用同一背景DB的Q点
错误
同时使用背景DB的Q点以及定时器功能框的Q点连接变量
自复位定时器示例
正确方法的流程,将程序根据指令分为两部分:
分解正确指令
阶段1.初始"DB2".脉冲=False,于是"DB2".脉冲取反为True,触发计时器开始计时,输出的"DB2".脉冲=False,状态不变;定时时间不到,则始终在阶段1;
阶段2.当定时时间到发生在①所处的位置,在TON处定时器更新,Q输出True,因此输出的"DB2".脉冲=True,等到下周期时"DB2".脉冲取反为False,导致输出的"DB2".脉冲=False,等再到下周期时就回到了阶段1;
阶段当定时时间到发生在②所处的位置,不影响定时器的更新,需要到下一周期才会改变输出,就回到了阶段2。阶段1.初始DY行"IEC_Timer_0_DB".Q=False,触发计时器开始计时,第二行,当定时时间不到,"IEC_Timer_0_DB".Q=False保持不变,输出的"DB2".脉冲=False;定时时间不到,则始终在阶段1;
阶段2.当定时时间到发生在①所处的位置,在DY行的"IEC_Timer_0_DB".Q处定时器更新,更新后,"IEC_Timer_0_DB".Q=True,取反为False,此时作为TON的输入,使得定时器复位,第二行的"IEC_Timer_0_DB".Q=False,输出的"DB2".脉冲=False,到下周期时就回到了阶段1;
阶段当定时时间到发生在②所处的位置,在第二行的"IEC_Timer_0_DB".Q处定时器更新,更新后,"IEC_Timer_0_DB".Q=True,输出的"DB2".脉冲=True,等到下周期时,"IEC_Timer_0_DB".Q=True,取反为False,此时作为TON的输入,使得定时器复位,第二行的"IEC_Timer_0_DB".Q=False,输出的"DB2".脉冲=False,等再到下周期时就回到了阶段1;
阶段4.当定时时间到发生在所处的位置,不影响定时器的更新,需要到下一周期才会改变输出,就回到了阶段2。
从上可知无论定时器时间到发生在哪个点,定时器都可以实现自复位,但是只有当定时时间到发生在②所处的位置时,"DB2".脉冲=True只保持一个周期,形成了脉冲,而在①和③时"DB2".脉冲始终为False无法形成脉冲。在正常程序中②的执行时间在整个扫描周期中占比很小,因此只有很低的概率可以实现脉冲。所以不能使用此种方法,第二个错误方法与之类似。
如何使用定时器实现JQ定时?
答:不能做到。
举例来说,定时1s的接通延时定时器,当程序扫描到定时器功能框的Q点或ET时或者扫描到背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时,如果时间为997ms,只会继续定时等下一次扫描,而下一次扫描到可能就是1003ms,此时定时器接通。也就是说几乎不可能正好1s接通,如果再配合计数器实现更长时间的定时,误差只会越来越大。
所以JQ定时还是推荐使用循环中断(OB30)配合计数器来实现。
4. 定时器指令中,功能框和线圈型的区别?
答:原理上是完全一样的,细微区别:
功能框定时器上可以定义Q点或ET,在程序中可以不必出现背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;而线圈型定时器必须使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;