6ES7223-1PH22-0XA8产品型号
PLC编程应该遵循以下基本原则。
1)外部输入、输出继电器、内部继电器、定时器、计数器等器件的接点可多次重复使用,无需用复杂的程序结构来减少接点的使用次数。
2)梯形图每一行都是从左母线开始,线圈接在右边,接点不能放在线圈的右边,如下图。
3)线圈不能直接与左母线相连。如果需要,可以通过一个没有使用的内部继电器的常闭接点或者特殊内部继电器R9010(常0N)的常开接点来连接,如下图。
4)同一编号的线圈在一个程序中使用两次称为双线圈输出。双线圈输出容易引起误操作,应尽量避免线圈重复使用。
5)梯形图程序必须符合顺序执行的原则,即从左到右,从上到下地执行,如不符合顺序执行的电路不能直接编程,例如下图所示的桥式电路就不能直接编程。
6)在梯形图中串联接点、并联接点的使用次数没有限制,可无限次地使用,如下图所示。
7)两个或两个以上的线圈可以并联输出,如下图:
1、晶体管输出
高速输出:如伺服/步进使用于动作频率高的输出:如温度PID控制,主要用在步进电机控制,也有伺服控制,还有电磁阀控制(阀动作频率高)。
2、使用寿命
继电器是机械元件有动作寿命,
晶体管是电子元件,只有老化,没有使用次数限制。
3、电流
晶体管电流0.2A-0.3A
继电器2A。
4、电压
晶体管大24V,继电器可以接220V
晶体管直流,继电器交流+直流
5、负载
用晶体管时,有时候要加其他东西来带动大负载(如继电器,固态继电器等)。
6、继电器输出型
CPU驱动继电器线圈,令触点吸合,使外部电源通过闭合的触点驱动外部负载,其开路漏电流为零,响应时间慢(约10ms),可带较大的外部负载;
7、晶体管输出型
CPU通过光耦合使晶体管通断,以控制外部直流负载,响应时间快(约0.2ms),可带外部负载小;
8、可控硅输出型
CPU通过光耦合使三端双向可控硅通断,以控制外部交流负载,开路漏电流大,响应时间较快(约1ms
变量表的使用
在程序的调试过程中大家去监控程序的运行情况通常都是在与连接的情况下直接打开程序界面,点击监控按钮,观察该程序的运行情况。这种调试方法我们对局部程序的运行状况可以有比较直观的监控,如果我们想要对一组特定的数据进行监控这种方法就显得不够直观了,西门子在step7中为我们提供了变量表这个功能,让我们可以对整个项目中任意变量建立表格进行观察,这就是变量表在step 7中存在的意义。
那么变量表是否只能起到对变量列表进行监控的功能呢?当然不是,如果只能监控变量岂不是显得变量表功能太单调了。下面我就从变量表监控变量、修改变量值、以及对i/o点位的强制这三个方面来向大家介绍变量表的使用。
1、对变量的监控
通常情况下对于使用者来说变量表对于我们常用的功能还是对变量的监控,下面我们具体向大家演示变量表的建立,以及如何使用变量表监控变量。
1) 在程序界面右键选择插入新对象继续选择变量表即可建立变量表
图1-1
2)在变量表中输入需要监控的变量
图1-2
3)在连接plc或者仿真器的情况下我们就可以监控变量的运行状况了
图1-3
2、对变量的修改
除了对变量的监控为了方便调试我们也可以在变量表中对变量进行修改。下面我们一起来看看如何在变量表中修改变量值。
1) 输入修改值
图2-1
2)点击修改变量即可完成对变量的修改
图2-2
3、对i/o点位进行强制
由于i点(输入点in put)的状态是完全由外部电路的状态决定的,o点(输出点output)的状态是完全由程序的运行结果控制的,在变量表中我们是无法像控制m点一样来改变i/o点的数值的,这时如果调试的过程中我们需要改变i/o点位的数值就必须要使用变量表的强制功能了(要注意这个功能是仿真不了的)。下面我们看看变量表强制的具体步骤。
1) 选择变量选项卡并单击显示强制值,出现如图3-2所示界面
图3-1
图3-2
2)选择强制按钮,即可进入图3-4所示强制状态,这里我们强制了q0.0
图3-3
图3-4
上周,客户反映当wincc集成到step7中做变量上传时,发生了很诡异的事情:当选择db块中的operator control andmonitoring选项时,对钩出现后瞬间消失?!如下图所示(仅示意)。
一开始真心不相信。眼见为实,客户发来了项目,果真如此。检测,发现该db为fb背景数据块,找到相关fb,做了如下测试:
1. 项目中其它的fb和db块没有问题
2. 新创建的fb和db块没有问题
3. 使用reorganize进行项目重组无效
4. 创建新项目,拷贝原项目中的问题fb和db块无效
由此,推断问题出现在该fb中,打开fb,也未发现异常。如下图所示。
事到如今,只能采取笨方法 —— 排除法了。
1. 将问题fb复制,删除所有network程序
编译存盘后,重新生成db,设置监控属性无效。推断问题出现在interface的接口参数中。
2. 删除interface中所有wincc监控变量(标记为绿色三角)
编译存盘后,重新生成db,设置监控属性有效。推断问题出现在interface中的wincc监控变量中。
3. 逐一取消interface中wincc监控变量的s7_m_c属性,如下图所示
发现问题所在!interface中定义的输入参数的结构变量control.manual_auto_chain的s7_m_c属性被取消后,db设置监控属性有效!
经过反复测试,fb中定义的结构变量超过24个字符,即可产生先前描述的诡异现象。删除多余的字符(control.manual_auto_chain->;control.manual_auto_chai),问题解决,如下图所示。
在step7帮助中未发现对于变量名称长度有24个字符的限制,而在wincc中,变量定义rawtag时有24个字符的限制,可能和此有关。
db中的结构变量名称定义过长,是小概率事件,但也给了我们一个很好的参考