PROFINET1.8.0.5协议移植问题汇总

news2024/11/16 3:50:49

注:记录个人移植过程遇到的问题,正在更新。。。
PROFINET1.8.0.5协议移植遇到问题汇总:
软件环境:TIA_V17
硬件环境:stm32F205_ZET6主控芯片+TPS-1 PROFINET IO 20500PF00(芯片物料编码B0001.0.2)
驱动代码:TPS-1协议驱动版本1.8.0.5,官方stm32F20X驱动。
工程项目:PN4-1616A
问题1描述:
目前对硬件TPS1已完成协议栈的烧录固化,在TIA进行程序仿真时,检查TPS stack得不到正确的魔数值与NRT区域大小,侧面说明程序在初始化时某地方存在错误。
注:根据TPS数据手册知固件上电后,TPS-1会将魔数值和NRT区域大小填写到地址0x8000和0x8004中,目前是失败状态。
问题验证如下:相同的硬件环境在杰的工程仿真下可以得到正确的魔数值,以及在1.2版本的TPS环境下也可以得到正确值,目前可排除协议栈烧录问题,故将问题设定在软件初始化位置。
问题1总结:
1、改动唯一变量(硬件/软件),进行项目测试。本次排查问题通过仿真已交付项目的1.2,1.6,1.8TPS协议工程都可以正确访问,故可排除硬件问题。
2、确定TPS-1的复位引脚(FMSC)。
3、验证TPS1相关使能寄存器是否填入正确值(写进去再读出来比较)。
4、成熟工程相关配置比较,本次问题就是出现在对IAR工程使用不熟悉造成的,没设置正确的仿真环境,通过以下设置后工程数据正常。
linker设置
Debug配置
问题2描述:通过协议栈烧录后,在TIA环境中一直不能对IO模块进行名称分配和IP设置。
问题2总结:在TPS Configurator软件中的操作模式选择并口,从站类型应选择“TPS-1”,自己当时填的“PNIO”。
从站通用配置在这里插入图片描述
**问题三描述:**PC+PLC+IO模块 通过交换机相连,在IAR工程存在上图函数时,将程序下载到单片机中然后退出debug模式(不进行代码运行),然后在TIA环境更新可访问设备是一直找不到IO模块的(现象是一直发送请求报文)
问题三总结:
第一步:将IAR工程debug运行一下并退出,然后在TIA双击扫描在线设备才可以扫描到IO模块,接着通过分配设备名称和IP配置,并分配PLC和IO模块,最后将工程下载到PLC中。此时通过wireshark可以发现设备(有请求,有回复),说明DCP协议正常。第二步:此时整个环境都断电,并重新上电,在TIA环境更新可访问的设备时一直找不到IO模块,并且wireshark一直发送请求包,找不到IO模块,DCP发现并配置设备是失败的。总结:上述场景必须每次都需要在IAR环境将工程debug运行一下才可以发现设备并配置设备,这个现象侧面说明程序固化到MCU中不能自己运行,这个问题待进一步确认根源。
在这里插入图片描述
在这里插入图片描述
若将上图函数注释掉,将代码更新下载到MCU中,断电并重新上电,在TIA环境中更新可访问设备是可以直接扫描到IO模块的,并且在wireshark下是可以看到DCP协议有请求有回复,属于正常现象。
在这里插入图片描述
在这里插入图片描述
问题四描述:使用官方源代码的自动配置功能,通过wireshark抓包分析,不管是固化代码让其上电自启动或者在IAR中debug代码,现象是控制器PLC与IO模块都建立不了连接。
问题四总结:代码去掉了自动配置功能,并参考官方提供的GSDML文件确定槽和子槽的相关参数,并在configDevice和ConnectReq函数中修改源码,现象是固化代码上电自启动建立不了连接,但在IAR中进行debug程序仿真,控制器PLC与IO模块是可以建立连接的(全速运行不加断点),并且没有错误码(之前使用了1.2版本的TPS协议栈的GSDML文件,会一直出现错误码)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LabVIEW-数组数据类型

数组是将一系列、同一类型的数据组合到一起。在LabVIEW 中,数组可以是字符串类型、数值型或者布尔型等多种数据类型中的同类数据的集合。但不能创建以数组为元素的数组,也不能创建图标和图形数组。 目录 创建数组 ​编辑 数组相关函数 求数组大小 初…

并发集合ConcurrentHashMap、CopyOnWriteArrayList

一、ConcurrentHashMap 1.1 存储结构 ConcurrentHashMap是线程安全的HashMap ConcurrentHashMap在JDK1.8中是以CAS+synchronized实现的线程安全 CAS:在没有hash冲突时(Node要放在数组上时) synchronized:在出现hash冲突时(Node存放的位置已经有数据了) 存储的结构:…

移动机器人路径跟踪的设计和仿真模型预测控制(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 在轨迹跟踪应用领域,通常 MPC 建模可根据机器人的控制方式选择基于运动学运动状态方程建模或者基于动力学运动状态…

【JavaEE初阶】计算机工作原理

摄影分享~ 文章目录冯诺依曼体系操作系统操作系统的定位进程/任务(process/task)内存管理冯诺依曼体系 线代的计算机,大多遵守冯诺依曼体系结构。 CPU 中央处理器: 进行算术运算和逻辑判断. 存储器: 分为外存和内存, 用于存储数据(使用二进…

从架构的角度看搜索与推荐

搜索与推荐的区别 1. 场景需求不同 搜索的场景故名思义,就是用户提供想要寻找的内容的描述,系统返回给用户匹配到的结果,常见的场景如文字输入框的搜索,图片搜索,听音识曲,标签筛选等,看似很多…

TypeScript - 泛型 Generics(通俗易懂详细教程)

前言 关于概念,本文不会过多叙述。 先来看个例子,体会一下泛型解决的问题吧。 我们定义一个 print 函数,这个函数的功能是把传入的参数打印出来,最后再返回这个参数,传入参数的类型是 string,函数返回类型…

Kyligence Zen 产品体验 --- 全方位总结

Kyligence Zen 是一个企业级大数据分析平台,基于 Hadoop 和 Spark 技术栈,具有高性能、可扩展性和易用性等优点。本文将从体验者角度出发,对 Kyligence Zen 进行详细的描述,包括使用场景、功能特点和使用体验。 一、使用场景 Kyl…

springboot 统一异常处理 + 日志记录

在项目的开发中,在某些情况下,比如非业务的操作,日志记录,权限认证和异常处理等。我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。先…

JavaScript【四】JavaScript中的函数

文章目录🌟前言🌟什么是函数?🌟函数声明方式🌟 function关键字🌟 字面量定义(匿名函数)🌟 实例化构造函数🌟函数调用方式🌟通过括号调用🌟自调用(IIFE)🌟通过…

企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标

​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外…

windows安装Metasploit

近期在大佬群里各种炫技,各种工具使用,漏洞利用与复现,感觉自己常规安全测试就是个小学生,于是好心的大佬发了个Rapid7Setup-Windows64.exe的渗透工具,但是自己的电脑安装了,破解不了,导致失败&…

计算机组成原理——第四章指令系统(上)

提示:待到秋来九月八,我花开后百花杀 文章目录前言4.1.1 指令格式4.1.2 扩展操作码指令格式4.2.1 指令寻址4.2.2 数据寻址4.2.3 偏移寻址4.2.4 堆栈寻址汇总前言 通过第二章我们学习了运算器是如何进行加减乘除,移位运算操作的,通…

【密码算法 之七】GCM 浅析

文章目录1. 概述1.1 GHASH1.3 GCTR2. GCM 加密3. GCM 解密4. 总结在我的另一篇博客【密码算法 之三】分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析 中已经详细的介绍了对称算法(也称为“分组密码算法”)的各种工作模…

排序算法(一)

一、排序算法 排序算法就是将数组按照数值或者字母序排列,常用的排序算法有很多,如下: 详细细节可以直接看维基百科:https://zh.wikipedia.org/zh-cn/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95 C的库中实现了常用的排序算法&#x…

Linux_红帽8学习笔记分享_4

Linux_红帽8学习笔记分享_4 文章目录Linux_红帽8学习笔记分享_41.用户管理useradd命令的使用1.1使用useradd添加用户1.2 Linux系统底层的四个连锁反应2.账户信息文件/etc/passwd中七个字段的含义3.组信息文件/etc/group中四个字段的含义4.影子文件/etc/shadow两个字段的含义5.相…

C++STL——map与set介绍及使用

map与set介绍及使用关联式容器健值对setmultisetmapmultimap关联式容器 之前我们学的list,vector等等是序列式容器,这里的set和map和之后的哈希表都是关联式容器,比如说搜索二叉树我们想插入一个值,不能随意的插入,因…

【JVM】JVM之执行引擎

文章目录前言名词解释机器码指令指令集汇编语言高级语言字节码虚拟机&物理机前端编译器&后端编译器JVM之执行引擎执行引擎是如何工作的?解释器即时编译器(JIT)分层编译策略虚拟机执行模式热点代码&探测方式1)方法调用…

Android 屏蔽锁屏界面上的通知显示

一. 前言 [定制需求描述]:在插入SD后, 锁屏状态下, 去掉提示“SD卡可用于传输照片和媒体文件” 需求拆解: 要求正常显示在SystemUI下拉状态栏, 只需要屏蔽在锁屏状态下的通知. 二. 发送通知 首先来找找这个字符串"可用于传输照片和媒体文件" 是在/f…

buuctf_随便注

根据题目猜测这是一道SQL注入的题目输入一个单引号触发报错,根据报错信息得知闭合条件就是一对单引号继续构造表达式,得出一共包含两个回显位构造表达式求出当前数据库的名称,但是根据回显数据和实践来看,此题是对select进行了过滤…

【软件设计师12】数据流图DFD

数据流图DFD 必考下午第一道大题!!! 基本概念、数据字典、数据平衡原则 1. 基本概念 顶层图是系统,再看中间跟外部数据的交换流不变,内部细化,最底层图进一步细化 数据存储在题干描述时,要么…