S7-1200 定时器
S7-1200的定时器为IEC定时器,用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。
使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER(或TP_TIME、TON_TIME、TOF_TIME、TONR_TIME)的DB块变量,不同的上述变量代表着不同的定时器。
注:S7-1200的IEC定时器没有定时器号(即没有T0、T37这种带定时器号的定时器)。
S7-1200包含四种定时器:
· 生成脉冲定时器(TP)
· 接通延时定时器(TON)
· 关断延时定时器(TOF)
· 时间累加器(TONR)
此外还包含复位定时器(RT)和加载持续时间(PT)这两个指令。
指令位置参见图1,定时器引脚参考表1,定时器使用及时序图参考表2。 这四种定时器又都有功能框和线圈型两种,区别参见常见问题3。
图1 指令位置
表1定时器引脚汇总
S7-1200 定时器创建
S7-1200定时器创建有以下几种方法:
1. 功能框指令直接拖入块中,自动生成定时器的背景数据块,该块位于“系统块>程序资源”中,参见图2。
图2 自动生成定时器的背景数据块
2. 功能框指令直接拖入FB块中,生成多重背景,参见图3。
图3 多重背景
3. 功能框指令直接拖入FB、FC块中,生成参数实例,从TIA博途V14开始,参见图4。
图4 参数实例
4. 在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME(后面四个从TIA博途V11开始)类型变量,在程序中将功能框定时器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。对于线圈型指令,这是首选方法。
(1) DB块中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图5~图7。
图5 DB块中的定义
图6 功能框定时器使用
图7 线圈型定时器使用
(2) FB的静态变量中新建IEC_TIMER等类型变量(LAD/FBD)
图8 静态变量中定义
(3) FC和FB的INOUT变量中新建IEC_TIMER等类型变量(LAD/FBD),
图9 INOUT中定义
(4) 以上三种方法的SCL版本,从TIA博途V14开始支持,参见图10。
图10 SCL中使用
从以上4个示例可以看出,IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME五种数据类型没有本质的区别,可以互换使用,为使得程序明确,建议只使用定时器对应名字的数据类型。
5. 在插入DB时,选择IEC_TIMER类型的数据块,将该数据块填在指令上方。此种方法生成的数据块等同于第一种的背景数据块,位于“系统块>程序资源”中,从TIA博途V11开始,线圈型指令同样适用,参见图11。
图11 新建IEC_TIMER类型DB
S7-1200 定时器常见问题
1. 为什么定时器不计时?
答:可能原因如下:
(1)定时器的输入位需要有电平信号的跳变,定时器才会开始计时。如果保持不变的信号作为输入位是不会开始计时的。TP、TON、TONR需要IN从“0”变为“1”启动,TOF需要IN从“1”变为“0”启动。
(2)定时器的背景数据块重复使用。
(3)只有在定时器功能框的Q点或ET连接变量,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET,定时器才会开始计时,并且更新定时时间。参见下图
2. 如何编程自复位定时器并产生脉冲?
答:正确答案参考下图,同时附上2种常见错误编程方式。
原因:S7-1200的定时器的时间更新发生在定时器功能框的Q点或ET连接变量时,或者在程序中使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时。即如果程序中多次使用同一背景DB的Q点,或者既使用定时器功能框的Q点或ET连接变量,又使用背景DB的Q点,以上两种情况都会造成定时器在一个扫描周期内的多次更新,可能造成定时器不能正常使用的情况。
正确方法的流程,将程序根据指令分为两部分,如图12所示:
图12 分解正确指令
阶段1.初始\"DB2\".脉冲=False,于是\"DB2\".脉冲取反为True,触发计时器开始计时,输出的\"DB2\".脉冲=False,状态不变;定时时间不到,则始终在阶段1;
阶段2.当定时时间到发生在①所处的位置,在TON处定时器更新,Q输出True,因此输出的\"DB2\".脉冲=True,等到下周期时\"DB2\".脉冲取反为False,导致输出的\"DB2\".脉冲=False,等再到下周期时就回到了阶段1;
阶段3.当定时时间到发生在②所处的位置,不影响定时器的更新,需要到下一周期才会改变输出,就回到了阶段2。
从上可知,定时器实现了自复位,并且\"DB2\".脉冲=True只保持一个周期,形成了脉冲。
以第一个错误方法解释一下为什么这种方法不能实现自复位定时器并产生脉冲,如图13所示,将程序根据指令分为三部分:
图13 分解错误指令
阶段1.初始第一行\"IEC_Timer_0_DB\".Q=False,触发计时器开始计时,第二行,当定时时间不到,\"IEC_Timer_0_DB\".Q=False保持不变,输出的\"DB2\".脉冲=False;定时时间不到,则始终在阶段1;
阶段2.当定时时间到发生在①所处的位置,在第一行的\"IEC_Timer_0_DB\".Q处定时器更新,更新后,\"IEC_Timer_0_DB\".Q=True,取反为False,此时作为TON的输入,使得定时器复位,第二行的\"IEC_Timer_0_DB\".Q=False,输出的\"DB2\".脉冲=False,到下周期时就回到了阶段1;
阶段3.当定时时间到发生在②所处的位置,在第二行的\"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无法形成脉冲。在正常程序中②的执行时间在整个扫描周期中占比很小,因此只有很低的概率可以实现脉冲。所以不能使用此种方法,第二个错误方法与之类似。
3. 如何使用定时器实现精确定时?
答:不能做到。
举例来说,定时1s的接通延时定时器,当程序扫描到定时器功能框的Q点或ET时或者扫描到背景DB(或IEC_TIMER类型的变量)中的Q点或者ET时,如果时间为997ms,只会继续定时等下一次扫描,而下一次扫描到可能就是1003ms,此时定时器接通。也就是说几乎不可能正好1s接通,如果再配合计数器实现更长时间的定时,误差只会越来越大。
所以精确定时还是推荐使用循环中断(OB30)配合计数器来实现。
4. 定时器指令中,功能框和线圈型的区别?
答:原理上是完全一样的,细微区别:
(1) 功能框定时器上可以定义Q点或ET,在程序中可以不必出现背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;而线圈型定时器必须使用背景DB(或IEC_TIMER类型的变量)中的Q点或者ET;
(2) 功能框定时器在使用时可以自动提示生成背景块,或者选择不生成;而线圈型定时器只能通过手动方式建立背景块;
(3) 线圈型定时器如果出现在网络段中间时不影响RLO的变化,如图14所示,\"DB46\".Static_1和I1.0同步变化。
图14 线圈型定时器示例
电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。
欢迎大家关注,点赞,评论及转发。
《我的世界》虽然是一款相对和平的游戏,但是不免也有些攻击型生物会对玩家造成伤害,那么除了用武器和护甲武装自己之外还有什么方法能让我们远离危险呢?
答案就是这些指令,如果游戏开启了“允许作弊”,并且你有权限使用这些指令的话,它们将赋予你很多神奇的能力,下面我们就为大家盘点一些最实用的指令吧!
一键“无敌”
/gamemode 1
这是大多数人最常用到的指令,作用是将游戏模式切换为创造模式,假如你被僵尸追击只剩一点血,这时候输入这个指令就可以避免死亡和贵重物品的掉落。不过创造模式下也有一种情况会有危险,那就是坠入虚空了,不过着本来就是一种作死的行为。相反的,/gamemode 0是将游戏设置为生存模式的指令。
传送
/tp <玩家ID>
你是否有过在游戏中找不到你的朋友这样的经历,无奈之下最后只能一起死回重生点。。。有了这个指令你就可以轻松的瞬移到他身边,无论你们离得有多远都是即刻到达。不过当你的朋友坏笑着让你立刻tp过去的时候一定要三思,因为他很有可能正站在岩浆里。。。
经验什么的弱爆了
/xp 999999
一刀999级是什么体验?使用这个指令你甚至连1刀都不用挥!有了足够多的经验之后,附魔、修复什么的都不再是难题。
改变天气
/weather clear/rain/thunder 秒数
下雨天很烦?其实通过一段简单的指令就能修改当前的天气了,该指令支持切换三种天气,分别是晴天、雨天和雷雨天,再也不用怕下雨天嘈杂的噪音了~
改变时间
/time set day/night
既然能改变天气,那改变时间自然也是不在话下,使用time set指令就能够直接将时间调到晚上或者白天,不过这种加快时间的办法好像对生长中的作物并没有影响,所以想吃到面包还是老老实实的等吧。
其实《我的世界》里有趣的指令还有很多很多,你还用过什么奇葩的指令,欢迎在评论区和大家分享哈~
大家好,我是小茶,这篇教程给大家带来的是VoxelMap小地图模组的介绍,玩过我的世界的朋友都会觉得有一些不方便的地方,比如:
如何在我的世界里面辨别方向?
如何知道我所处的地形附近有什么建筑?
如何在自己挖矿的时候方便的知道自己所处的层数?
如何快速的传送到某一个地方?
自己找到一个刷怪笼,如何记录坐标,下次直接传送过来?
VoxelMap小地图可以为你解决以上的所有问题,同时还为你提供了一些额外的非常不错的辅助功能,一起来看一下吧。当你进入游戏,看到地图的提示信息,以及右上角的位置有一个圆形的地图,那么恭喜你,你的小地图模组安装成功了。
从提示信息中可以看到一些快捷键的信息:
Z:放大/缩小地图;
M:选项;
X:切换大地图;
N:快速添加一个路径点。
如果你没记住,想下次再看看这些快捷键是怎么设置的,或者有快捷键冲突,想重新设置,可以进入控制按键界面,几乎所有的快捷键都能在这查看到,但是要注意,标红的快捷键表示有冲突,可能无法使用。
接下来,来试试地图的功能吧,按下M键,就会进入小地图的选项界面,看到地图中间的小头像没有,表示的是你当前的位置,在西边有一个村庄,村庄边上是山丘,还有一条河流,从这里可以看出你自己所处的地形。如果没有小地图的话,你很有可能就会和这个村庄擦肩而过啦。
点击选项,就进入小地图的选项设置界面了,你可以设置很多参数。
显示坐标:是否在小地图下方显示当前坐标,这个功能还是挺有用的,特别是挖矿的时候,可以知道你当前的高度,然后可以根据高度来找相应的矿石。
隐藏小地图:是否隐藏小地图;
位置:可以将小地图放在屏幕的四个角落,比如你玩虚无世界2模组的时候,为了不遮挡虚无世界2的图标,可以将小地图放到左上方;
尺寸:调控小地图的大小;
方形地图:切换小地图的形状,方形还是圆形;
日落北方:字面的意思是开启后太阳北方降落,可以试试;
游戏内路径点:路径点的显示效果;
洞穴模式:开启后,可以显示洞穴的地形,比如岩浆位置等等。
雷达:进入雷达设置页面,可以设置是否显示随机生物、敌对生物、中立生物、周围玩家、玩家名字,玩家头盔,生物头盔,以及显示的图标方式。
在生物显示设置里面,可以自定义哪些生物显示,比如,可以把爬行者的显示关了,这样小伙伴们在地图上就看不到爬行者了,简直就是坑队友必备神器。
好了,我们再回到选项的页面,来看看细节和性能的设置。
动态光照:是否开启;
地形深度:分坡度和高度,或者两者都显示;
水域透明度:可以清晰地看到水底的东西,这也是一个很有用的功能;
方块透明度:在地图上方块是透明的,可以显示方块底部的东西;
生物群系:显示生物群系的名称;
生物群系显示:配合生物群系选项;
过滤渲染:根据自己显卡性能决定是否开启;
区块边界:显示后在小地图上能看到方格线;
史莱姆区块:是否显示史莱姆区块,方便寻找史莱姆,在史莱姆区块里面是会生成史莱姆;
地图种子:当前地图的种子,如果不知道怎么查的也可以在这里看到;
下一个小地图选项中的控制界面,查看的是小地图快捷键的设置情况,也可以在这里直接修改。
M:菜单;Z:缩放;X:切换大地图;N:快速添加路径点;U:显示/屏蔽全部路径点。
小地图选项中的最后一项设置是世界地图选项
显示记录点:是否显示快捷添加的记录点;
显示路径点的名称:是否显示路径点的名称;
最小缩放等级、最大缩放等级:决定的是将能将地图缩小和放大的级别;
区域缓存大小:根据自己电脑性能来调整,性能好可以适当调高。
以上介绍的就是小地图的设置部分,那么小地图最实用的功能其实是以下这两个:随时随地的传送,以及路径点的设置。
随时随地的传送,按M进入地图的界面,在地图上找到你想要去的地方,然后在该地方右键,出现一个菜单;
新路径点:将该地方作为一个路径点记录下来;
焦点:标记该地方;
传送至:注意,就是这个功能,你可以直接传送到这个地方,类似tp指令,是不是很方便?
分享位置:将该地方的坐标分享出来;
另一个实用功能是路径点的设置,如果你找到一个地牢,或者找到一个遗迹,你想记录这个地方的位置,下次再来,那么你可以按快捷键N,就会弹出路径点记录的界面,可以为你的路径点起一个名字,选择一个颜色。
也可以设置一个图标,比如是自己的家的话,选一个家的图标,点击完成,那么这个路径点就算记录完成了。
记录完成之后,下次想要再来的话,只需要,按快捷键M,然后点击左下角的路径点,那么就会出现你记录的所有路径点的。你可以对路径点按照名称、距离、添加时间、颜色来排序,也可以编辑、删除、传送至某个记录点。
以上就是我的世界1.12.2 VoxelMap小地图模组的介绍,这个小地图模组虽然简单,但提供的功能非常强大,特别推荐新老玩家使用,如果觉得小茶介绍的不错的话,希望大家点个关注,点个收藏,后续我将给大家带来更多更好玩的模组的介绍。如果有哪些地方介绍的不对,或者介绍的不全的,欢迎大家补充,谢谢大家。