西门子工业电源北京总经销商
西门子工业电源北京总经销商
浔之漫智控技术(上海)有限公司(xmz-wh-shqw)
欢迎来到浔之漫智控技术(上海)有限公司,公司位于上海市松江区小昆山镇广富林路,单位注册资金单位1000万元。是一家诚信正规的西门子自动化工控产品代理销售与服务公司,拥有良好的高中层管理队伍,我们在技术开发、市场营销和服务等方面拥有丰富的管理经验,上海浔之漫多年从事SIEMENS产品的销售经验,本着树立公司形象和对用户认负责的精神开展业务,赢得了SIEMENS公司与广大用户的好评及大力支持。选择我们,值得你信赖! 本公司主营:经销/CO-TRUST科思创西门子PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,6FC,6SNS120 V10 V60 V80伺服数控备件:进口电机,电线,电缆,国产电机(1LG0,1LE0)大型电机(1LA8,1LA4,1PQ8)伺服电机(1PH,1PM,1FT,1FK,1FS)西门子保内全新产品‘质保一年。一年内因产品质量问题*换新产品;不收取任何费。希望能跟您有多的合作机会。欢迎致电咨询。
PLC编程的基础知识
PLC编程是非标自动化电气工程师必备的技能,很多工程师都在进行着PLC编程工作,但是有多少人了解PLC编程的基础知识?本文将跟大家分享从控制工程编辑顾问委员会成员Frank Lamb获得的三个编程基础知识点。
梯形逻辑和PLC扫描时间
几乎所有的PLC都是以相同的方式处理扫描。首先,CPU将外部物理输入读入内存表,通常称为“输入表”。然后,在程序运行时使用该表,不同的数据使用不同类型的寄存器;当逻辑在每个梯级上从左到右,在每段程序中从上到下被处理时,寄存器就会被更新。*后,所有更新的寄存器都会写入另一个被称为“输出表”的内存表,该表对应外部的物理输出将用于驱动外部连接的物理设备。这就是PLC运行的基本原理,不清楚这个原理就不可能写出**的PLC程序。
当前PLC程序可能会出于不同的控制目的调用不同的子程序,调用子程序的顺序非常重要。根据存储寄存器和输出表的更新位置,物理输出可能会延迟*多两次扫描,这样程序的执行效率就偏低,甚至影响设备节拍。
无论什么情况下,程序在调用不同的子程序之后,都会回到调用它们的位置,*后在原始循环的末尾结束。大多数程序使用初始循环用于调用所有子程序,但是有一种并不常见的情况,有些程序是定期运行的。大多数程序尽可能快地运行连续运行的程序,在执行所有代码、逻辑运算并更新寄存器和输出表之后,将生成的输出表写入物理输出。
这个过程就是PLC的扫描周期,需要多长时间取决于CPU的速度、程序中代码的数量和指令的类型。在程序中使用循环、或者对相同的子程序进行重复调用,这些都会影响扫描时间。评估PLC的扫描时间没有人会傻到把所有代码相加估计长度,不同的指令的执行时间也不同,计算出来的时间也仅供参考。
关于PLC的扫描时间,这里有一个参考值50毫秒,通常情况下如果PLC的扫描时间超过50毫秒,就要考虑优化程序结构来节省扫描时间,如果超过80毫秒,就必须更换更强大CPU的PLC。优化程序结构就是避免使用循环,改变子程序的调用位置。
BCD编码
BCD是一类二进制编码,通常由四位或者八位表示。只有将寄存器中所有的单个位相加,才能将它们转换为十进制的数,这是一种编程的思考方式。
在没有出现触摸屏之前,七段显示器和指轮开关常被用作人类与PLC的数字接口,甚至在PLC出现之前,这些设备也是与电路进行数字对接的唯一图形方式。ENIAC(第一台电子通用计算机)时代通过移动插头来进行数字输入,当使用这些设备查看和调整十进制数字就要容易多了。这些设备的输入/输出(I/O)非常密集,每个指轮开关需要四个输入外加电源,每个七段显示器需要四个输出外加两个电源。尽管如此,与使用按钮和指示灯相比,直接使用小数形式的有符号或无符号整数更容易。
PLC编程比较麻烦的是:每个数据类型必须在CPU内部显式声明,如果数据类型不等价,就必须进行转换。标准计时器和计数器数据类型将BCD纳入其数据结构中,这是因为这些结构可以追溯到不得不使用指轮开关和七段显示器的时候。对于3秒定时点,定时器设置点被输入为“S5T#3S”。计时器使用三个BCD数字(12位)和两个额外的位作为时间基数,计数器也是这样,这就意味着它们只能从-999计数到+999。
每个四位部分都只能携带从0000到1001的位值,对于下一个值,不是索引到1010(有符号或无符号十进制的“10”或十六进制的“A”),下一个位被缓冲到下一段位,这意味着*后六个位组合(A-F)实际上被浪费了,这在BCD结构中是不可能的。
BCD结构在许多新的触摸屏中仍然可用,但大多数工程师倾向于选择整数来表示十进制数。BCD有点像DOS,学校还在教授它,但工程师已经不知道怎么回事了。只有回到指轮开关和七段显示器时代,才有助于澄清BCD的本质。
可重复使用代码的优点
近些年PLC编程比较大的进步就是许多增强功能的加入,这些增强功能包括基于标签、允许使用用户定义的数据类型(UDT)和附加指令(AOI)。标签可以制作成每个程序的本地标签,允许重复使用。IEC 61131早在1993年左右就已经定义了PLC编程的这些新功能,正是基于这些新功能才能够在现在的PLC系统中构建可重复使用的代码块,也被称为功能块。支持此功能的PLC必须具有一下三个功能:
1、局部变量和全局变量
可重复使用代码必须具有适用于每个代码实例的变量;理想情况下,对于原始代码只格式化数据一次。这意味着标签或符号列表不必为每个实例或调用重新命名。例如,多次复制一个子例程并迭代其中的地址,虽然节省了时间,但并不是真正的可重复使用代码。
2、用户定义数据类型(UDT)
创建UDT允许构建可以从一个应用程序导出到另一应用程序的结构。它们允许使用诸如“速度”、“开始”和“拒绝”之类的通用术语来描述组件。UDT不需要基于标签的系统,但它们确实需要符号的**使用。
3、可保护的独立块或功能块
代码应该包含在一个允许变量传入和传出的块中,并且还要受到保护,这样用户就不能更改它的特定实例。
以上三个只是基本功能,在选择编程语言上,也需要抛掉*早的梯形图编程,使用符合IEC标准的PLC语言(如STL机构化文本)编写代码,有助于使PLC更强大和快速进行代码开发。
无论PLC是使用带有局部变量的子程序还是可定制指令,可重复使用代码都是快速创建控制程序的关键部分。