使用蓝图手动配置一个最小系统(基于STM32F103RC)通过蓝图选择驱动模块打开软件KQD Designer,点击主工具条中的【设计】按钮,进入固件设计界面: 在设计工具条中,点击库边上的【更新】按钮,选择从服务器更新最新的固件信息。 更新过程中: 更新完成后,选择与最小系统板单片机匹配的驱动库:Mbear-M1-STM32F10x。 蓝图:最小内核系统单击【添加】按钮,添加蓝图:Core - 最小系统模块 软件中会列出最小内核系统需要的所有模块,如果需要修改模块的实现和版本,先左键点击选择模块,然后再右键点弹出菜单,可以在菜单中选择模块的实现和版本。新建项目选择实现的最新版本即可,无需修改。 最小内核系统中列出的所有模块都必须使用,依次选择好实现和版本就完成了最小内核系统的模块选择。 蓝图:MODBUS协议再次单击【添加】按钮,添加蓝图:Modbus - MODBUS (莫迪康)相关模块 添加蓝图MODBUS是因为PLC程序的下载、监控都是通过MODBUS协议来传输数据的,如果使用PLC系统进行应用程序的开发和调试,就必须选择一种MODBUS传输层实现。目前快驱动平台上的驱动支持以下MODBUS传输层实现:
因为最小系统板只能通过串口与电脑连接,这里我们先介绍怎么通过MODBUS-RTU实现连接,首先添加Modbus协议模块的实现与版本: 确定之后需要选择Modbus传输层模块ModbusL的实现方式,这里我们选择Rtu_ModbusL: Rtu_ModbusL依赖于串口驱动模块Asc,因此必须确定一个Asc模块的实现和版本: Asc可以管理多个串口通讯底层模块AscL。在单片机STM32F10x中,快驱动平台实现了基于USART1、USART2、USART3的串口通讯底层,还有一个基于USB虚拟串口的UsbVcp串口通讯底层,因为我们最小系统板连接的是USART1的PA9、PA10,因此我们这里选择USART1_AscL: 不同的串口有很多函数时复用的,快驱动平台将复用的函数打包到模块UART_AscLI。因此USART1_AscL依赖于串口通讯底层实现模块UART_AscLI,这里需要选择UART_AscLI的实现与版本。 Modbus协议需要读写PLC变量(标准的Modbus协议可以通过通讯指令读写PLC变量),因此依赖于变量管理模块Mb。 串口管理模块Asc需要配置串口的收发控制管脚(例如工作在RS485半双工通讯模式),因此依赖于Port、Dio模块;同时Asc串口模块需要定时器来对串口数据进行接收超时的判断(完成一帧数据的接收),因此也依赖于定时器管理模块Gpt。 将所有的依赖项实现与版本确定后,发现定时器管理模块Gpt有底层驱动GptL需要定义: 确定好GptL底层和GptLI底层实现实现后,便完成了MODBUS协议蓝图的所有驱动模块选择。 蓝图:PLC系统再次单击【添加】按钮,添加蓝图:Fcc - PLC系统 首先是确认Fcc模块的版本: Fcc可以管理若干Fe模块,Fe模块是PLC系统与其他驱动对接的接口。特殊PLC指令、用户系统块、I/O变量的映射都通过Fe模块来实现。因为最小系统核心板没有任何可用外设,因此不添加接口,仅保留Modbus_Fe即可: PLC系统需要在单片机内部FLASH上存储梯形图数据,因此依赖于Fs模块,确定好Fs的实现后,就完成了PLC系统蓝图所有驱动模块选择。 在蓝图中配置驱动模块点击设计工具条中的编译按钮,编译当前选择的驱动模块: 蓝图下方会出现选择模块的配置信息: 左边用于模块配置节点的选择,右边用于节点配置项的具体设置。 配置:项目(STM3210x)选择最小系统模块蓝图,在蓝图中选择模块STM32F1xx,在配置节点中选择Main节点,可以在右边窗口查看具体设置。
分别选择Main节点下面的App、User_BANK0、User_BANK1节点,设置每个段的FLASH和RAM的大小。
修改好节点配置信息后,需要点击按钮【应用修改】 修改将被保存到模块配置节点中去,同时软件会对保存的数据进行分析,并刷新分析结果: 本项目中单片机STM32F103xC的总FLASH大小为256K,系统固件使用128K,用户空间BANK0使用32K,用户空间BANK1使用32K,则剩余的32K放在最前面用于存放Bootloader。(Bootloader的空间应不小于8K,具体值由引导程序配置决定) 配置:串口底层驱动(USART1_AscL)选择蓝图Modbus,在蓝图中选择串口底层USART1_AscL。在配置节点中选择Main节点,使能DMA传输模式,然后【应用修改】。这样,USART1_AscL将使用硬件DMA来操作串口的数据缓存,以减少单片机的中断负载。 选择Pin节点,确定串口使用的单片机管脚位PA9(TX)、PA10(RX)。 配置:串口管理(Asc)蓝图中选择串口驱动Asc,配置节点中选择Device节点,然后点击工具条中的【添加】按钮,添加Asc的底层驱动设备: 确定后,Device[]节点下面将多出一个Device0通讯设备,选择此通讯设备:
配置:MODBUS协议传输实现(ModbusL)选择蓝图Modbus,在蓝图中选择MODBUS传输层Rtu_ModbusL。在配置节点中选择Port节点,然后点击工具条中的【添加】按钮,添加MODBUS传输层通讯端口: 确定后,Port[]节点下面将多出一个Port0节点,选择此节点:
系统在Asc管理模块中自动添加的Job可以进一步被配置,点击Job配置项右侧的快捷箭头: 进入Asc模块配置节点下的Job配置: 确定通讯任务Rtu_ModbusL_Port0_Job的帧间隔时间和从站等待应答的时间。 配置:MODBUS协议(Modbus)选择蓝图Modbus,在蓝图中选择MODBUS通讯协议。在配置节点中选择Port节点,然后点击工具条中的【添加】按钮,添加MODBUS通讯端口: 确定后,Port[]节点下面将多出一个Port0节点,选择此节点,确认配置:
到此便完成了最小系统的配置,再一次点击【编译】按钮,系统对配置进行编译,如果输出以下信息,便说明配置无误。 |