1 OEM嵌入式通讯模块介绍

OEM嵌入式通讯模块是一款适用于工业以太网和现场总线协议的嵌入式IC模块,利用该模块可快速又轻松地把您的设备集成到工业网络中。目前该系列模块有支持PROFINET、EtherNet/IP、EtherCAT、Modbus TCP、CANopen、Profibus、DeviceNet、CC-Link等实时通信协议。OEM模块对用户开放了2种串行接口,包括USART接口(标准Modbus RTU协议)和SPI接口,与主控MCU应用程序交换实时网络数据,从而将您的设备集成到相应的网络而无需大量的开发工作。另外该模块还具备32个引脚的IO信号,可以满足32个点的数字量IO设计,这32个IO引脚可以任意设置成DI或DO。

2 案例说明

本案例以OEM模块标准评估板(主控芯片STM32F103VCT6)结合集成PROFINET从站通讯协议的OEM通讯模块,及西门子S7-1200 PLC作为PROFINET主站为例,进行关于PROFINET通讯模块的通讯测试。

准备工作

#①OEM模块标准评估板

功能说明:

1. 开发板上X1端子,直流24V供电。<X1-1:24V、X1-2:0V >。

2. 本开发板支持2种串行接口,包括USART接口和SPI接口。

3. 本开发板具备32个引脚的IO信号,可以满足32个点的数字量IO设计。

4. 本开发板对外提供一路RS232信号,用于打印信息。

5. 本开发板主芯片使用STM32F103VCT6,开发例程基于此型号芯片编写。

6. JP2插针是开发板主芯片的程序烧写口。

7. 拨动开关S1:拨到ON时,开发板供电;拨到OFF时,开发板断电。拨动开关S2始终处于OFF状态。

#②目标系统

西门子PLC S7-1200作为PROFINET主站,PROFINET通讯模块插在标准评估板上作为从站,通过网线连接两个设备进行通讯。评估板上的RS232端口与电脑连接,用Modbus Slave软件查看接收到的来自PROFINET网络中数据,或者向开发板发送数据从而发送给PLC。

3 通讯测试

OEM嵌入式通讯模块的通讯测试实际上包括两个部分:PLC主站与OEM模块之间的通讯,以及OEM模块与评估板之间通过USART(Modbus RTU)或者SPI的数据交互,本示例以USART通讯为例说明。

#3.1 基本配置

1) OEM 模块 J1~J3 全部断开,开发板拨码 1~8 全部 OFF;

2) 使用交换机将西门子 PLC、开发板、电脑连到一起,PLC 程序下载到 PLC;

3) 使用RS232 连接线,将电脑与开发板的 DB1 端口连接;

4) 电脑打开 Modbus Slave 软件,建立连接。

#3.2 OEM模块与PLC通讯

① 导入对应PROFINET通讯模块的gsd文件到博图软件中,便于之后网络组态与设备配置使用

② 选择-->添加新设备-->找到并添加所使用的PLC型号,这里以S7-1200为例

③ 找到所导入的GSD文件对应的设备,并添加到设备组态中,并连接PLC与通讯模块

④ 配置PLC的IP地址与设备名称(这里使用“自动生成PROFINET设备名称”)

⑤ 配置OEM模块的IP地址与设备名称,这里使用默认的GSD文件中sast名称,也可以对设备额外设置其他名称,但需注意与网络组态中的一致,否则无法找到设备。

⑥ 在设备视图中添加输入输出模块,这里分别添加32 bytes input和32 bytes outputs为例

⑦ 选择“编译”,检查是否有报错:

⑧ 选择“下载”,在出现的窗口中分配对应的子网,点击“开始搜索”找到可访问的设备,并“下载”

⑨ “装载”配置

⑩ 选择“转至在线”可监控网络状态,所添加设备后显示绿色对勾代表通讯状态正常。

#3.3 OEM模块与评估板通讯

① 状态机

无论使用USART还是SPI,OEM模块都做为主站运行,遵循下面的状态机:

② 数据区定义

根据功能的不同,OEM模块用到的数据区划分为5个区域,分别是:通讯信息区、下发数据区、下发参数区、设备信息区、上传数据区。OEM模块在“S1 握手”阶段读取设备信息区的数据,由于PROFINET模块目前未使用此区域的内容,所以用户仅需要正确回复报文即可,OEM模块忽略数据值的内容。

下发数据区(4xxxx区 - 10H功能码)(最大1000字节)

上传数据区(3xxxx区 - 04H功能码)(最大1000字节)

③ USART通讯

1) USART接口波特率支持:9.6Kbps、19.2Kbps、38.4Kbps、57.6Kbps、115.2Kbps、230.4Kbps、460.8Kbps。

2) OEM模块上电后,在S1握手阶段,通过握手报文,OEM模块可以自动适应用户的波特率。用户使用的波特率需要在以上7种波特率之中。

3) USART接口数据帧格式:8 个数据位、偶校验、1 个停止位。

4) USART使用标准MODBUS协议。

5) OEM模块做为USART通讯主站,用户做为USART通讯从站。

6) 用户串口的处理机制:用户做为标准的MODBUS从站,只需要在收到OEM模块的报文命令后,按照相应命令回复报文即可。

7) 通讯报文约定

A. 下发数据

板卡发送:

用户应答:

B. 上传数据

板卡发送:

用户应答:

④ Modbus程序示例:

//*******************Modbus数据接收********************//int user_modbus_deal_rev(void){unsigned int  i , tem_start_adr , tem_num ;unsigned int tem_crc ;unsigned char tem_hi , tem_lo ;tem_crc = modbus_crc( URXDBuf , UART_rev_num-2 );tem_lo = tem_crc & 0xff ;tem_hi = (tem_crc>>8) & 0xff ;//**CRC校验if( ( URXDBuf[UART_rev_num-2]==tem_hi ) && ( URXDBuf[UART_rev_num-1]==tem_lo ) ){if( URXDBuf[1] == 0x10 ) // 功能码10H{tem_start_adr = ( URXDBuf[2] << 8 ) + URXDBuf[3] ;tem_start_adr = tem_start_adr << 1 ;tem_num = URXDBuf[6] ;for( i=0 ; i<tem_num ; i++ ){modbus_4_data[ tem_start_adr+i ] = URXDBuf[7+i] ;}}user_modbus_deal_txd();}return 1 ;}//*******************Modbus数据发送********************//int user_modbus_deal_txd(void){unsigned int tem , i ;unsigned int function_code  , tem_start_adr , tem_num1 , tem_num2  ;function_code = URXDBuf[1] ;// 04Hif( function_code == 0x04 ){tem_start_adr = ( URXDBuf[2] << 8 ) + URXDBuf[3] ;tem_start_adr = tem_start_adr << 1 ;  ַtem_num1 = ( URXDBuf[4] << 8 ) + URXDBuf[5] ;tem_num2 = tem_num1 << 1 ;for( i=0 ; i<tem_num2 ; i++ ){modbus_3_data[ tem_start_adr+i ] = modbus_3_data[ tem_start_adr+i ] + 1 ;UTXDBuf[3+i] = modbus_3_data[ tem_start_adr+i ] ;}UTXDBuf[0] = modbus_adr ;UTXDBuf[1] = 0x04 ;UTXDBuf[2] = tem_num2 ;tem = modbus_crc( UTXDBuf , tem_num2+3 );UTXDBuf[tem_num2+3] = tem >> 8 ;UTXDBuf[tem_num2+4] = tem ;UART_trx_num = tem_num2+5 ;}// 10Helse if( function_code == 0x10 ){for( i=0 ; i<6 ; i++ ){UTXDBuf[i] = URXDBuf[i] ;}tem = modbus_crc( UTXDBuf , 6 );UTXDBuf[6] = tem >> 8 ;UTXDBuf[7] = tem ;UART_trx_num = 8 ;}UART_trx_ctr = 0 ;UART_rev_ctr = 0 ;Modbus_TR_State = TR_TURE ;for( i=0 ; i<10 ; i++ )USART_SendData( RTU_USART , UTXDBuf[0] );monitor_print(UTXDBuf[0]);return 1 ;}

⑤ 数据交互模型

#3.4 数据交互测试

在“PLC变量”中添加需要在线监视或修改的变量,在“监控与强制表”中添加监控表,并添加对应的变量,可进行变量的监测。另外,这里可以通过Modbus Slave软件监测从站开发板的收发数据。在博途和Modbus Slave可以分别查看相应的收发数据,PROFINET模块通讯正常,并完成PROFINET数据交互。(注意OEM嵌入式通讯模块数据区Modbus寄存器地址从0x100开始)

关注我们,了解更多【虹科工业通讯】

工业通讯 | OEM嵌入式通讯模块与西门子PLC S7-1200通讯测试指南相关推荐

  1. 西门子plc s-7 1200驱动伺服电机方法

    西门子plc s-7 1200驱动伺服电机方法 前言 完整设备连接 驱动实际接线图 程序编写 新建项目 添加工艺对象 配置工艺对象 程序编写 启动方法 选择工作模式 前言 其实,伺服电机还用另外两种工 ...

  2. modbus tcp主站和从站_组态王与西门子 PLC无线Modbus通讯

    组态王与西门子PLC无线Modbus通信方案 本方案是组态软件与西门子S7-200 Smart 进行无线MODBUS 通信的实现方法.此方案可以作为西门子S7-200 Smart与组态软件的无线MOD ...

  3. c#与马扎克通讯_北京西门子plc和触摸屏通讯费用情况

    怀服务之心凌技术之顶 秉承自主创新,将互联网技术和信息技术应用于工业智能制造并提供整体解决方案.同时,注重服务和培训,与客户共同发展. 北京西门子plc和触摸屏通讯费用情况 智慧路灯组网工厂里的每一台 ...

  4. c++ char4个字节_西门子PLC的TCP通讯(不同项目下)①--TSEND_C指令

    西门子PLC的TCP通讯(不同项目下)①--TSEND_C指令 本期说一下,不同项目下的,连个西门子1200的TCP通讯,这次我们用TSEND_C和TRCV_C组合使用,这次先了解下TSEND_C指令 ...

  5. labview+PLC程序+OPC完整项目程序Labview和西门子PLC smart200 OPC通讯仪器串口通讯

    labview+PLC程序+OPC完整项目程序Labview和西门子PLC smart200 OPC通讯仪器串口通讯 全套项目资料,包括Labview 程序,研华工控机,西门子Smart 200程序, ...

  6. Labview和西门子PLC smart200 OPC通讯仪器串口通讯

    Labview和西门子PLC smart200 OPC通讯仪器串口通讯 全套项目资料,包括Labview 程序,研华工控机,西门子Smart 200程序,电气原理图,元器件清单,详细注释 Labvie ...

  7. S7-1200程序博图V15伺服轴控制西门子V90PN S7 -1200程序博图V15伺服轴控制西门子V90PN

    S7-1200程序博图V15伺服轴控制西门子V90PN S7 -1200程序博图V15伺服轴控制西门子V90PN PLCS7-1200,可赠送v15软件 西门子博图编写,程序包含一台机器所具备的所有功 ...

  8. winpcapp配置c++网口通讯_(经验)西门子PLC的Modbus TCP通讯的一些经验

    Modbus是一种协议公开的工业通讯,被广泛使用.通过串口的是Modbus-RTU协议,通过以太网的是Modbus TCP通讯.现在的PLC都开始支持以太网通讯,因此,Modbus TCP也越来越重要 ...

  9. 西门子PLC与Unity3D通讯丨PROFINET通讯

    Unity3D 与西门子PLC通讯 前言 通讯协议 通讯建立的细节 期间遇到的两个主要问题 总结 前言 想做这样的通讯太久了,从21年二月份陆陆续续到十一月份才正式做好,最开始想西门子1200系列与u ...

  10. 西门子PLC S7-300出现通讯故障及远程维护办法

    西门子S7-300是一款高性能.应用广泛的PLC设备,模块化.分布式结构以及简单易学的操作,使得西门子S7-300成为中小型应用的高性价比方案.如电气设备.数控机床.纺织机械.包装机械.制造生产线,受 ...

最新文章

  1. 2018年各大互联网前端面试题三(阿里)
  2. Linux gdb调试器
  3. Binary String Reconstruction CodeForces - 1352F(思维+构造)
  4. Unable to execute dex: Multiple dex files define 解决方法
  5. mysql limit 5 5 正确_MySql 5.7 同时使用order by和limit时结果集不正确的问题
  6. 荣耀v20、荣耀20Pro、mate20、Nova5Pro选哪个?
  7. 稳站大屏 AIoT 时代之巅,创维 Swaiot 生态品牌实现全面布局!
  8. linxu改网络地址。
  9. Java基础---Java---IO流-----LineNumberReader方法及原理、自定义一个LineNumberReader、字节流、图片复制、mp3复制、
  10. jenkins-启动和关闭服务
  11. 阿里巴巴矢量图标库的使用,超详细用法
  12. PC串行接口串口定义
  13. python继承封装多态简单理解_Python面向对象编程:封装、继承、多态(基础篇十)...
  14. 利用Python实现简单的相似图片搜索
  15. 俄罗斯方块游戏的算法
  16. 多项式的乘法满足结合律和交换律
  17. 微信{errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}
  18. 汇编语言rep movsd 的使用
  19. 全球首个华纳兄弟酒店正式营业,《老友记》喷泉、全新蝙蝠侠战车亮相
  20. STM32开发笔记109:在STM32CubeIDE中调整字体显示

热门文章

  1. 个人简历表格 个人简历word百度云 完整个人简历样本
  2. 硬盘接口的分类和硬盘的分类
  3. 写给音响工程师的科普文章(二)——从模电角度去了解调音台话放
  4. 绿色版飞信LibFetion提示用户密码错误的解决办法,直接改用飞信号登录即可
  5. 符合 Qi 规范的移动设备无线充电解决方案
  6. 全球IP地址分配对应表
  7. zebradesigner2教程_zebradesigner pro 2中文版-斑马条码打印机软件下载 附带安装教程 - 安下载...
  8. [ERP/鼎捷E10][计划管理]主生产计划MPS
  9. 真正的【清华大学计算机系】是什么样子?
  10. AutoCAD 2019 汉化包