2. 入门指导:第一个PN IO设备
开发之前的准备,需要的软件:
- TIA Portal V16、V17
- 串口终端软件 (MobaXterm或Putty或TeraTerm)
- Win10 并且安装64位JAVA运行环境
- J-Link的驱动软件
- Proneta(推荐使用)
需要准备的硬件
- 性能好一些的PC (核数越多编译越快,否则编译会很慢)
- 评估板 (默认PN-CORE及底板)
- S7-1500 PLC (1200也可以,但是无法使用IRT)
- USB UART/TTL(注意不是RS232,淘宝上可以很容易买到)
- J-Link仿真器
2.1开发环境与协议栈的编译
V47协议栈的eclipse工程是基于64位Java运行环境的,需要确认已安装64位JDK/JRE,例如jdk-8u231-windows-x64。
为了方便使用,笔者将代码适配到PN-CORE评估版,并且将相关的工具重新打包,请从西门子官方代理商处获取压缩包。
解压后的协议栈内容如下表所示:
目录 | 内容简介 | |
contributions | BBB_xhif_device_tree | Beagle bone black 设备树文件,配合minimal design v3 |
GSDML | DEVKIT47的GSDML文件 | |
Simatic_TIA | TIA博图示例项目 | |
SNMP_MIBS | SNMP MIB文件 | |
doc | HW | Minimal design,NANO,CORE的设计文件,EB200P的设计文件和手册,ERTEC200P-2的datasheet和参考手册 |
SW | 开发指导: Guideline_EvalKit_ERTEC200P_V4.7.0.pdf 协议栈接口: Interface_Description_PN_IO_DevKits_V4.7.0.pdf GSDML文件概述: GSDML_GettingStarted_V1_5.pdf | |
Installed_tools | eclipse | 64位 eclipse 开发环境 |
Mingw | 工具链,交叉编译环境,ecos源代码 | |
pn_ioddevkits/src | application | 用户程序 (RT、IRT、PROFIDRIVE) |
projects | 项目目录和编译输出(e.g. projects\pnio_proj\ertec) | |
source | 协议栈源码 | |
tools | ecos配置工具 | |
pn_run | src | 协议栈源码 |
setup | / | 开发环境自动下载工具 |
tools | DebugTool | JLINK 烧写NOR flash配置文件 |
PNConfigLib | 替代TIA博图生成PN-driver配置文件的工具 | |
PN-driver controller example | PN-driver 控制器程序,可以用PC机连接PN设备,读写IO,读写数据记录,发送周期32ms。在没有PLC的情况下可以用来模拟控制器(需要安装WinPCAP) | |
TcpFwLoader | 通过TCP下载烧写固件的工具 | |
USB to RS232 driver | EB200P-2 评估板USB驱动 |
新建一个文件夹作为eclipse工程的workspace,如\Devkit47\Installed_tools\eclipse\wsp
双击eclipse图标打开软件,在Workspace栏中选择新建好的路径:
点击Launch之后的界面如下:
接下来导入开发包中的ECOS和EK_ERTEC工程项目,点击菜单File -> Import
选择General 下的Existing Projects into Workspace
点击Next,在Select root directory栏中选择开发包中提供的工程的路径
勾选ECOS和EK_ERTEC两个工程即可:
(如果不使用标准的主机接口方案(MinimalDesign VAR2 + VAR3 + BBB),可以不导入 BBB(AM3358) Linux的项目HOST_XHIF。)
导入项目后,Eclipse的界面如下图:
首先编译ECOS操作系统,在Eclipse右侧的窗口双击"build ecos-native EB200P SDRAM 1x32bit NOR-FLASH 32bit",这是针对EB200P-2的配置。如果不是首次编译,需要先运行“fullclean ecos-native”清除中间文件。
编译的输出可以在“Console”中看到,编译会需要一段时间,如果配置正确会看到如下输出结果
在PN协议栈中,包含5个示例程序APP:
APP | 说明 | EXAMPL_DEV_CONFIG_VERSION |
App1_STANDARD | 标准接口(SI)示例程序 | 1 |
App2_DBAI | 直接内存访问(DBAI)示例程序 | 2 (本手册用不到) |
App3_IsoApp | IRT同步示例程序 | 3 |
App4_XHIF | Minimal design V3 XHIF示例程序 | 4 (本手册用不到) |
App44_PROFIDrive_AC4 | PROFIDrive AC1/AC4 示例程序 | 44 |
通过改变EXAMPL_DEV_CONFIG_VERSION宏来切换不同的APP。在编译协议栈前确认我们使用APP1。
再编译PN协议栈,右键点击EK_ERTEC项目,选择配置Bulid Configurations -> Set Active -> EB200P_Debug_EcosNative(EB200P-2 Debug Firmware)
配置好后就可以进行协议栈的编译了,右键点击EK_ERTEC项目 -> Build Project
编译结束之后可以在Console界面看到如下结果:
可以看到编译输出有两个文件:
PNIO4ECOS是包含调试信息的elf文件,可以用来下载到SDRAM调试运行。EB200P_Debug_EcosNative.bin是2进制固件文件,可以烧写到flash中运行。
这两个文件可以在\Devkit47\pn_ioddevkits\src\projects\pnio_proj\ertec\EB200P_Debug_EcosNative中找到。
下一篇:2.2调试协议栈