热门搜索:

上海朕锌电气设备有限公司是一家从事:西门子变频器维修、西门子触摸屏、西门子工业电脑的西门子一级代理商,西门子中国总代理商,西门子楼宇代理商。上海朕锌电气设备有限公司凭借雄厚的技术实力及多年从事 SIEMENS 产品的销售经验,本着树立公司形象和对用户认真负责的精神开展业务,赢得了 SIEMENS 公司与广大用户的好评及大力支持,欢迎来电咨询!

    西门子EMAQ02模块资料
    • 西门子EMAQ02模块资料
    • 西门子EMAQ02模块资料

    西门子EMAQ02模块资料

    更新时间:2024-05-13   浏览数:1290
    所属行业:机械 电工电气 工控系统及装备
    发货地址:上海市松江区  
    产品规格:西门子EMAQ02模块
    产品数量:100.00台
    包装说明:全新原装
    价格:面议
    产品规格西门子EMAQ02模块包装说明全新原装型号西门子EMAQ02模块 品牌西门子

    西门子EMAQ02模块资料

    在梯形图编写完成后,我们进行测试时,往往由于梯形图太长,无法及时看到各触点的变化,在西门子的编辑器中,为我们提供了一种方法,可以有效快捷的查看触点状态,就是状态表。

    首先建一个空白的状态表

    然后在地址栏写入要监视的触点名称,格式要与自己梯形图中使用的一致。写好后,点击保存,在当前值一栏就会显示当前系统中该触点的状态。

    如果想修改状态,可以在新值栏,输入新值。若是该点非自锁,则不一定会保持你修改的值,因为系统在不断刷新,刷过后就又更新了。可以在更新时点击右上边的小锁,锁定新值,这样就不会变了。

    工具栏较右边可以切换时序图,通过时序图能更直观的了触工作状态

    时序图可以调整速度,以适应不同的信号监视。

    西门子EMAQ02模块资料

    S7-300时钟读取与设定编程

    (用于在MHI系统显示和修改CPU时钟)

     

    在PLC程序开发中,经常会用到CPU的时钟数据,用于产生周期脉冲或统计周期数据。STEP7软件提供SFC0和SFC1两个系统功能实现时钟的设定和读取,下面就详细介绍一下我利用这两个系统功能实现时钟显示和设定的过程。

    我计划实现的功能是读取CPU时钟并分解为年、月、日、时、分、秒六个整数用于显示;同时设定年、月、日、时、分、秒六个整数输入地址用于修改时钟。时钟读取是连续的,时钟修改是通过按钮人工设定的,为了方便输入,还具有时钟同步功能,可以将当前时钟数据同步到输入区。

    SFC0和SFC1的使用说明就不再详述,可以通过帮助文件学习。这两个指令使用的时间数据都是BCD格式,实际上编程的主要工作就是BCD码和INT整数的相互转换。

           建立程序数据块



    2.     调用SFC1读取CPU时钟



    3.     分解时间数据



    4.     时间数据转码



    5.     年份数据补齐:读取的年份数据是用两位数表示的,其中90~99表示1990~1999年,0~89表示2000~2089年,因此实际应用时需要将年份数据的前两位补齐。



    经过以上处理就完成了CPU时间读取的工作。

    6.     写时间同步:将当前CPU显示时间同步到设定区域(也可以根据需要将HMI时间映射到设定区域,实现CPU与HMI的时间同步)



    7.     年数据处理:将4位的时间数据处理成2位。



    8.     时间数据INT转换成BCD



    9.     时间组合



    10.  写时间命令:判断月、日数据不为0时才有效,防止错误。



    通过以上过程就完成了CPU时间设定的工作。利用读取的时钟数据可以产生编程需要的各种脉冲信号:

    11.  分钟脉冲产生



    12.  小时脉冲产生



    13.  一天脉冲产生


    本篇讲一下在S7-1200/WINCC做报警的具体实现方法。 


    在进入主题之前,先吐槽一下AB。


    我本来认知上既然所有PLC都是计算机, 那不仅西门子PLC,其它品牌的PLC也都可以实现。 而且,业界一直传闻的是,AB的PLC性能特别强大,编程环境特别自由,比西门子好用多了。


     我自己多年前使用的感受,也想当然地以为1769比S7-300更接近计算机,各种与计算机相关的需求自然不在话下。


    但这次组织在AB系统下做标准化项目,令我大失所望。 而主要承担开发工作的同事,曾经多次跟我进言AB PLC多好用,用起来多舒服的,这次也吃尽苦头。连续撞墙掉坑之后,跟我感慨,认识到西门子反而比AB PLC自由多了。 


    做报警功能,在PLC编程中嵌入字符串功能,把报警信息文本做出来,我们目前在AB的系统中还没找到实现方法。希望有AB高手能实现的话,不吝赐教。


    在S7-1200和WINCC中,具体实现的思路其实很简单。


    首先在PLC中建立FB块ALARMB


    接口如下:

     


    各管脚的定义:

    ENA, 触发位,需要一个上升沿。

    INFO1,INFO2, INFO3,为3个字符串,用于绑定需要的文本,通常只用1个。

    (我前面吐槽AB的就是竟然INPUT管脚都不能支持字符串类型 ,不能直接赋值字符型常量值到管脚上,希望有AB高手能指导我们一下)

    SEP为链接字符串的分隔符

    PV为嵌入过程值


    输出值

    Writing:WINCC报警触发信号。

    MSG:WINCC报警信息文本。


    其它为程序逻辑需要的辅助变量。 其中有一个BUFF的数组,我这里设置了上限80。具体结合CPU的性能和系统的规模,可以修改。 


    程序的逻辑很简单:

    当ENA到来时,整理组织报警字符串,并送到BUFF的空闲位置中。如果不为空,则提升一个位置,直到80个都满,则溢出报警。 (说明此程序崩溃,有系统报警丢失)


    而在BUFF中有数据的情况下, 则不断执行FIFO, 把报警信息送到MSG,并触发报警信息位Writing。


    WINCC中收到报警信息后,则PLC程序取消 发送,过一个延时,再次发送下一条。 


    取决于WINCC报警系统和PLC的通讯能力,过去是所有报警信息是并发的,而现在是串行发送,性能当然降低不少。 所以需要延时。 触发时需要延时,以保证WINCC能收到报警。 而取消触发时也同样需要延时,需要一定长的时间,以确保WINCC收到报警离去,下一次再来时才会接收新的报警。 


    BUFF的功能实现了在同一时刻有多条报警信息触发的情况下, 报警信息不会丢失,但因为有延时, 会导致后发送的报警条目的时间和WINCC报警系统中记录的时间不一致。 所以程序中在报警信息文本中备注了误差时间。


    其实我更期待有更好的办法,写入到WINCC的报警时间,也能从PLC中获得,就OK了。 这需要再研究。


    然后在主控制程序,或者需要触发报警信息的位置,均插入一条对ALRMB的调用,这里示例了2个:


    注意,FB虽然是多次调用,但使用的背景数据块只有1个,等于是这个实例被重复调用罢了。 


     


    WINCC的项目中, 则非常简单, 只需要建立一条报警条目,触发信息即为ALMB_DB.Writing, 报警信息的内容为嵌入一个字符串型的变量,ALMB_DB.MSG。


    根据项目规模的大小, 如果一个报警通道的BUFF会拥堵,则可以再开辟一个通道, 即ALMB多调用一次,WINCC中也再增加一条报警。但无论如何,比需要多少个报警,就在WINCC中建立多少个条目, 要方便多了。 PLC编程思路也不容易被打断。 产生了什么报警,直接把描述信息记录在当场即可。 



    对于WINCC来说,一直有一个问题, 即嵌入报警的变量和触发变量同时赋值的话,在产生的报警信息中,嵌入变量值不够新,还是旧的值。 这个问题官方有一篇技术文档提出了解决方法, 也是本文描述的方法可以成功实现的一个重要基础。 

    西门子EMAQ02模块资料




    http://zx2013.cn.b2b168.com