热门搜索:

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

    西门子6ES71957HB000XA0
    • 西门子6ES71957HB000XA0
    • 西门子6ES71957HB000XA0
    • 西门子6ES71957HB000XA0

    西门子6ES71957HB000XA0

    更新时间:2024-10-31   浏览数:95
    所属行业:IT 电脑装机配件 网卡
    发货地址:上海市松江区  
    产品数量:500.00台
    价格:¥88.00 元/台 起
    型号西门子1.1KW变频器 品牌西门子

    西门子6ES71957HB000XA0

    上海朕锌电气电气设备有限公司

    SIEMENS西门子

    之前看到有人提出一个问题:

    现有一套完整设备,触摸屏+6只传感器,屏和传感器用RS485总线通信,采用MosbusRtu协议,但没有屏的程序。这种情况,在不改变屏和传感器的条件下,实现用一个PLC也能采集到6只传感器的数据。

    刚好有点空,以此为引,测试一个简单的逻辑。

    一,实现构想,S7-200SMART本体具有一个RS485接口,ModbusRTU的指令库,也可以通过自由口协议进行编程。PLC的串口能发送和接收指令,如果把PLC串口接到总线上,打开端口,不发送数据,接收线路上的消息,对信息进行甄别,如果接收到来自传感器的信息,通过消息数据串的协议格式,将有效数据提取出来。

     

    二,硬件和软件的搭建,首先,硬件上是支持的。通过双绞线把PLC的RS485接口接到已经存在总线上就可以了,主要的工作在于软件怎么实现。

    思路,modbus-rtu消息帧 起始和结束,是通过空闲线时间来分辨的,3.5个字符的空闲时间。假设通信格式为:起始位1,数据位8,校验位1,停止位1,传输一个字符需11位,3,5个字符,总的位数等于3.5*11=38.5,在9.6k的波特率下,空闲时间约38.5/9600=4.0104167毫秒。刚好200smart有两个定时器指令BITIM和CITIM,可以用来做毫秒级的时间间隔处理。自由口打开,接收字符,采用中断8,即每接收一个字符就中断一次。

    PLC上电运行时,进行一次BITIM,打开接收端口,

    1,接收到**个字符,

    2中断,

        A,执行CITIM计算时间间隔,并重新执行BITIM记录时间,并如果大于4秒(空闲线检测),进入B,如果小于4毫秒,表示正在接收消息,若接收标志位1,进入C,若接收标志为0,表示信息错误,进入I

    B,时间间隔大于4秒,上一步中接收的字符是**个字符,接收标志位置1,

    C,把SMB2(接收到的字符)存放到缓冲区**个字符,缓冲区数据个数自增1。

    D,如果数据个数=预设的数据长度,认为消息已经接收完成,判定接收完成,进入E,如果小于,表示信息没有接收完,进入I,

    E,比较通信指令,一般modbus-rtu 读寄存器指令为03H,如果接收到的*二个字符时03h,下一步进行CRC校验计算,核对校验字符。

    F,CRC校验计算,核对校验字符,

    G,核对成功,提取数据。否则进入H。

    H,复位接收标志位。

    I,中断返回。

    3,回到第1步,继续接收字符。

     

    三,编程测试,测试条件,根据现有条件布置,手上刚好有两台S7-200smart,一台作为modbus-rtu服务器,使用Modbus 从站指令库。通信格式 1位起始位,8位数据位,偶校验,停止位默认1位,波特率9600,设备地址3;电脑作为客户端,读取服务器(从站)的数据,测试时,只读了一个字的数据。

    1,用串口测试工具commix测试。OK

     

     2,用modbusscan测试 ,ok

     

     程序:

    主程序

     

    中断程序

    子程序 CRC校验



    http://zx2013.cn.b2b168.com