当前位置:自动化网>德国赫优讯自动化系统有限公司上海代表处门户>应用案例>德国赫优讯 netIC 现场总线模块在贝尔利产品中的应用

德国赫优讯 netIC 现场总线模块在贝尔利产品中的应用

发布时间:2010-03-19 09:51   类型:应用案例   人浏览

摘要:本文以贝尔利科技有限公司的产品为例,介绍了德国赫优讯 netIC 模块作为从站通讯接口的软硬件开发。netIC 模块全系列产品都提供统一的 32 针 DIL 封装形式,非常便于用户开发及集成。

该设备已成功在现场运行,通讯稳定,效果良好。

关键词:netIC;嵌入式模块;现场总线从站;实时以太网从站

  Abstract: This paper takes the case of BRL’s product and introduces the hardware and software development using Hilscher’s netIC module, which works as a Fieldbus slave or Real-Time Ethernet slave.All the modules of netIC product line provide a uniform DIL-32 compact dimension. Thus it enables easydevelopment and integration. The device operates successfully and netIC module provides a steady communication.

  Keywords: netIC, embedded module, Fieldbus slave, Real-Time Ethernet slave

1 引言

  贝尔利科技有限公司是一家从事科研开发和工程技术服务的高新技术企业,主营业务为机电产品制造、生产过程自动化、电气自动化、管理信息化等方面的系统集成、软件开发、工程设计、技术服务等,“贝尔利科技”凭借强大的技术队伍以及科学的管理和一系列综合系统集成项目的丰富经验,逐渐成长为实力雄厚的自动化系统的集成商。贝尔利科技以其丰富的运动定位控制系统和部件产品线,为客户提供了前所未有的解决方案甄选机会,以满足其特定的应用需求。其一款控制器已经分别集成了德国赫优讯 netIC 系列 CC-LINK 从站接口模块、PROFIBUS 从站接口模块及Device-Net 从站接口模块,并将集成其他现场总线及 PROFINET、Ethernet/IP 等实时以太网协议的模块,因此能根据客户使用的 PLC 提供的通讯接口,提供相应接口的产品。

2 德国赫优讯 netIC 模块简介

  德国赫优讯 netIC 嵌入式模块作为完整的单片模块,包括:NIC 50-RE(实时以太网从站接口模块,支持各种实时以太网协议,包括:PROFINET、EtherCAT、Ethernet/IP、Modbus/TCP、POWERLINK、SERCOS III 等)、NIC 50-DPS(PPROFIBUS 从站接口模块)、NIC 50-DNS(DeviceNet 从站接口模块)、NIC 50-COS(CANopen 从站接口模块)、NIC 50-CCS(CC-LINK 从站接口模块)、NIC 50-CPS(CompoNet 从站接口模块)等型号,所有型号都采用统一的32 针 DIL 封装,尺寸紧凑,片上集成了现场总线与实时以太网通讯接口所需要的所有元件。同时还提供了 netX Configuration Tool 配置软件和配套的评估板,方便用户进行产品开发。图 1 为 NIC 50-CCS 模块的实物图。

 

3 硬件开发
 
  netIC 模块提供了 32 针管脚,支持 UART 接口通过 Modbus RTU 协议集成入用户的主机系统,未来还将扩展 SPI 及 I2C 接口。因为模块本身已经提供了同步串行接口,如果作为简单的 IO设备,可以不需要额外的主 CPU。本例中使用了 C8051F 系列混合信号ISPFLASH 微控制器作为主CPU,其基于高速、流水线结构的 8051 兼容 CIP-51 内核,并提供了 2 路 UART 接口及其他丰富外设,因此可以在软件上实现 Modbus RTU 协议与 netIC 模块通讯。


  图 2 为 NIC 50-CCS 模块的管脚图,与其他型号模块唯一的区别只是在协议通讯接口的管脚,因此对于用户更换成其他模块非常方便。其中,29、30、31 管脚为串行主机接口, 可以与主 CPU的 UART 口直接连接,也可以通过 RS485 芯片进行连接;13、14 管脚为 CC-LINK 总线接口;27、28 管脚为诊断接口,连接 PC,进行产品配置;3、4、5、6、7 管脚为串行移位寄存器接口,用于连接外部开关量或模拟量信号。


 

  因此 netIC 模块的硬件开发非常方便,开发示意图如图 3 所示:

图 3 硬件开发示意图

  硬件开发的电路原理图如图 4 所示:



  同时,用户还可以增加诊断接口,数字量模拟量输入输出接口,状态显示 LED 灯等外围电路。
  

4 软件开发

4.1 netIC 模块配置

  netIC 模块本身的使用不需要任何程序上的开发,只需要使用提供的配置软件和评估板配置Modbus 及 CC-LINK 协议参数,再下载协议堆栈(Firmware)和配置文件。所有信息均保存在netIC 模块中的寄存器区域,该寄存器区域的结构如图 5 所示,例如,现场总线主站发送至 netIC 模块的数据保存在从 1000 开始的寄存器区域;netIC 模块发送至现场总线主站的数据保存在从 2000开始的寄存器区域。


  同时,主 CPU 也可以通过 Modbus RTU 直接访问所有寄存器区域,并通过 Modbus 修改Modbus 本身的波特率及总线协议的所有参数,如波特率、站地址、输入输出字节等。

图 5 寄存器区域结构


4.2 netIC 模块与主 CPU 通讯

     netIC 模块与 C8051F MCU 的通讯方式为 Modbus RTU,因此需要在 MCU 的用户程序中实现Modbus RTU 的读写功能。netIC 模块可以作为 Modbus 通讯的主站或从站,因此MCU 的 UART 口作为从站或主站。在用户程序中,通过 Modbus 命令码 3 读取 netIC 模块接收到的总线数据,通过Modbus 命令码 16 写数据到 netIC 模块,模块会自动将数据打包成协议数据帧发送至总线上。

 

  写寄存器命令代码如下:

        void UART0_send(char *cdata,char n)
          {
              char i,*pt;

              pt = cdata;                            //首地址放到指针中
              EA = 1;                                //开 cpu 中断
 
 

 

 


              REN0 = 0;
              ES0 = 0;                              //关闭串行口中断
              Rs485_Tx_Enable = 1;       //485 在发送状态
              TI0 = 0;                               //清中发送断标志位

             for(i=0;i                 {
                  SBUF0 = *pt;                  //启动发送过程
                  while(TI0==0);               //等待发送结束
                  TI0 = 0;                           //发送结束后将中断标志清零
                  pt++;                               //指向下一个要发送的地址
                 }

             TI0 = 0;
             Rs485_Tx_Enable = 0;       //置 485 在接受状态
             ES0 = 1;                              //打开串行口中断
             data_transfer = 0;
             REN0 = 1;    
        }

读寄存器命令代码如下:

        void UART0_receive(void)
       {
           unsigned char temp_receive;

           temp_receive = SBUF0;

           if(start==1 && end==0)
              {
                 TestDataBuffer[byte_num]=temp_receive;
                 byte_num++;
              }

            else if(1==overtime && 0==byte_num && start==0 && end==1)
              {
                 LocalAddress=temp_receive;
                 TestDataBuffer[byte_num]=LocalAddress;

                 if(LocalAddress==0x02)
                      {    
                         byte_num=1;    
                         start=1;
                         end=0;
                       }   
               }
         }

5 小结

  基于 NIC 50-CCS 模块设计的贝尔利控制器产品,目前已在现场成功投入运行,并且通讯质量稳定可靠,效果良好。德国赫优讯的 netIC 产品系列软硬件开发简单,并且具有统一的32 针 DIL封装形式,为用户提供了一种很好的开发现场总线或实时以太网从站设备的解决方案。
 
参考文献

[1] netIC_usermanual_designguide_en.              Hilscher Gesellschaft für Systemautomation mbH. 2009.
[2] C8051F02x user guide.                                                                            Silicon Laboratories Inc. 2003.
[3] C8051F02X DEVELOPMENT KIT USER’S GUIDE                                 Silicon Laboratories Inc. 2006.




















































本文地址:http://ca800.com/apply/d_1nrutga2l1gt7_1.html

拷贝地址

免责声明:本文仅代表作者个人观点,与中国自动化网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!

留言反馈
  • 评价:

  • 关于:

  • 联系人:

  • 联系电话:

  • 联系邮箱:

  • 需求意向:

  • 验证码:

    看不清楚?

  • 在线咨询