profibus DP and PA protocol stacks based on MCU.
1、协议栈基于cortex-M4 GD32F30x、STM32L系列实现,协议栈和用户应用程序可共享一颗MCU资源。
2、协议栈占用FLASH小于48K,RAM占用小于12K,占用一个UART、TIMER、I2C资源。
3、支持DPV0 、DPV1 、PA全部功能,支持自适应波特率,STM32系列最大波特率3Mbps。基于此可开发DP 从站、冗余从站、PA设备、PROFIsafe设备。
4、你可以试用Releaselib/libdppa.a,但不得修改、商用,如有需要联系作者。
5、如需demo硬件、移植到其它平台、更详尽资料请联系作者. email: xuji.zhao@foxmail.com , Wechat: fredzxj。
该Demo模拟了一个恒温控制从站,功能说明如下。
从站为模块化DP-V1从站(逻辑的)。
-
模块1:具备实时采集环境温度(int16_t),模拟输入AI,温度值实时返回给主控器PLC,16位温度值定义: 实际温度扩大100倍. (int16_t) temp_trans = (int16_t)((float)temp * 100.0) 。如10.01℃ ,用十进制 1001 表示。;
-
模块2:具备加热制冷状态开关监测,并将状态实时反馈给主控器PLC,数字输入DI, bit 0 : 加热开关状态,0 关闭,1 开启;bit 1: 制冷开关状态,0 关闭,1 开启。
-
模块3:具备对加热制冷设备控制驱动能力,控制信号来自主控PLC,数字输出DO,bit 4 : 加热开关控制,0 关闭,1 开启;bit 5: 制冷开关控制,0 关闭,1 开启。
主控PLC根据从站的温度值和当前加热制冷控制状态,完成PID控制算法运算后,响从站发出加热或制冷控制指令。
从站具备温度超温和低温报警功能,最低下限-40℃,最高上限80℃。
模块号 | 资源定义 | 配置标识字 |
---|---|---|
slot 1 | 温度值AI,2字节 | 0x50 |
slot 2 | 控制状态DI,1字节 | 0x10 |
slot 3 | 控制信号DO,1字节 | 0x20 |
模块号 | 资源定义 | 参数标识字(偏移) |
---|---|---|
slot 1 | 温度值上限,2字节,举例:80 ℃,取值:8000 | 0x1F 0x40 (11) |
slot 1 | 温度值下限,2字节,举例:-40 ℃,取值:-4000 | 0xF0 0X60 (13) |
slot 3 | 控制信号使能,1字节,bit4:加热,bit5:制冷 | 0x03 (15) |
模块号 | 资源定义 | 报警标识字(偏移) |
---|---|---|
slot 1 | 温度超上限,用户字段3字节,出现 | 0x06 0x01 0x01 0x05 0x01 0x1F 0x43(7) |
slot 1 | 温度超上限,用户字段3字节,消失 | 0x06 0x01 0x01 0x06 0x00 0x1F 0x00(7) |
slot 1 | 温度超下限,用户字段3字节,出现 | 0x06 0x01 0x01 0x05 0x02 0xF0 0X68(7) |
slot 1 | 温度超下限,用户字段3字节,消失 | 0x06 0x01 0x01 0x06 0x00 0xF0 0x00(7) |
可通过DPV1的非周期性读写功能实现如下功能:
- 重设从站参数
- 设备I&M,I&M功能的主要目的是识别设备,并在设备生命周期的各种场景中提供附加信息,如配置、调试、参数化、诊断、维护、修复、固件更新、资产管理、审计跟踪等,以支持终端用户。
模块号 | 索引 | 资源定义 |
---|---|---|
slot 1 | index 2 | 温度值上限,RW |
slot 1 | index 3 | 温度值下限,RW |
slot 2 | index 2 | 控制信号使能,RW |
slot 0 | index 255 | I&M ,RW |
slot 0 | index 240 | 固件下载 ,MSAC2_Doata_Transport |
slot 0 | index 241 | 固件信息获取 ,RO |
slot 0 | index 242 | 固件信息更新 ,MSAC2_Doata_Transport |
slot 0 | index 243 | 执行固件升级 ,WO |