产品中心
A20B-2902-0271
修改程序
接下来首先是在 lwip_ping_freertos.c 中include “mb.h”。这个文件包含了 freemodbus 协议栈提供的所有接口函数。
1.程序结构
Lwip 协议栈为用户应用程序的编写提供 3 种编程接口:
第一种是Raw Callback API,这种方式下协议栈与用户程序间通过回调函数实现通信。而且协议栈同应用程序处在同一个进程中,彼此间的执行都会互相制约。
第二种是 Sequential API 方式,用户向内核注册回调函数,并通过直接调用内核 UDP 或TCP 相关操作函数来完成应用程序的编写。在这种方式下,协议栈内核运行于进程 tcpip_thread, 而应用程序进程也是一个单独的进程。独立的进程结构可以使协议栈和应用程序的执行互不影响。通过使用邮箱和信号量等机制,内核进程可以直接将数据递交给应用程序邮箱中然后继续执行,不必阻塞等待。
第三种是使用 BSD socket 函数进行应用程序开发。本来这是简单的方式,但是由于BSD socket 函数在实现上高度抽象,不适合小型嵌入式TCP/IP 应用,所以 lwip 里的socket 函数并不是非常完整。
为实现与 lwip 协议栈之间的相互调用,freemodbus 协议栈采用的是sequential API 方式。具体的调用顺序如下:在 mb.c 中提供了 eMBTCPInit() 函数, 这个函数调用eMBTCPDoInit()函数, 随后层层调用下去,后在 xMBTCPPortInit()函数中调用 tcp_bind()。这个函数是 lwip 的 tcp.c 提供的。下图反映出了 modbus 协议栈的层次结构。
A20B-2902-0271
A20B-2902-0271
Siemens Hilfsschalter 3RV1901-2A 3RV19012A OVP
Hirschmann Twisted Pair Transceiver Mini-UTDE
Simatic NET CP5511 PCMCIA 6GK1551-1AA00 ovp E2
Simatic S7 MC952 6ES7 952-1AK00-0AA0 1MB versiegelt
Simatic S5 Modul für CP524 6ES5 752-0AA43 versiegelt
Simatic S5 Modul für CP524 6ES5 752-0AA43 ovp
Simatic S5 CPU948 6ES5 948-3UA21 6ES5948-3UA21 E5 REM
Siemens Hilfsschalterbl?ock 3RH1911-2HA12 OVP
Siemens Leistungsschalt?er 3RV1431-4DA10 OVP
Siemens Leistungsschalt?er 3RV1021-1DA15 OVP
Siemens Leistungsschalt?er 3RV1011-1AA10 OVP
Siemens Leistungsschalt?er 3RV1021-0GA15 OVP
Siemens Leistungsschalt?er 3RV1021-4BA10 OVP
Siemens Leistungsschalt?er 3RV1011-1KA20 OVP
Siemens Leistungsschalt?er 3RV1021-1DA10 OVP
Siemens Schütz 3RT1035-3BB40 3RT10353BB40 OVP
Siemens Hilfsschütz 3RH1131-2BB40 3RH11312BB40 ovp
Siemens Hilfsschütz 3RH1122-2BB40 3RH11222BB40 OVP
Siemens Hilfsschütz 3RH1122-2AP00 3RH11222AP00 ovp
Siemens Koppelschütz 3RH1140-1MB40-0?KT0 ovp
Siemens Schütz 24V/4kW/400V 3RT1016-2BB41 OVP
Siemens Schütz 24V/5,5kW/400V 3RT1024-1BB40 OVP
Siemens Schütz Hilfsschütz 3RH1140-2BB40 OVP
Siemens Schütz 24V/11kW/400V 3RT1026-3KB40 OVP
Siemens SIMOVERT Wechselrichter 6SE7 023-4TC51
Siemens SIMOVERT Bremseinheit 6SE7018-0ES87-2?DA0
Siemens SIMOVERT Frequenzumricht?er 6SE7 018-0EA20
Siemens SIMOVERT Masterdrive MC 6SE 7016-05TP50-Z
INDRAMAT AC Servo Controller TVM2.1-50-220/3?00-W1
Simatic S5 CPU948R 6ES5 948-3UR11 6ES5948-3UR11 E6
ADVANTECH ISA CPU Karte-1-0 PCA-6151P PCA6151P ovp
SUN hydraulics Steuerventil CBBC LAN CBBCLAN
SUN hydraulics Ventilgeh?use ECV 9FX8 ECV9FX8 ovp
STAR Kugel Führungswagen 1651-314-10 165131410 ovp
Schroff POWERPAC PSK DUAL PSK 215 PSK215 ovp
DEVILBISS Lackierpistole JGA-4022-V JGA4022V ovp
TR Electronic Impulsverteiler G3401-LACJV05-0?1
Gelenkwelle 1700mm n=3000rpm