PC机和S7站之间的工业以太网通讯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1关于本文件
本文件包括PC机和S7站之间的工业以太网通讯例子信息
关于本例子的概述
详细内容请参见第3章及其后章节
•系统结构
•所需功能块及其通讯结构的介绍
•程序结构和代码摘录
•操作员控制及监视
•故障检测
2例子概述
系统示意图
例子功能性检查
根据PC 的对话框
启动PC 应用系统后
发送和接收的数据可连续改变其值
主站
带STEP 7的PG/PC
从站S7-400站
带有集线器例如ELM
的局域以太网
PC 站从站
为发送准备数据
写数据
读数据
保存和显示接收的数据
接收和返回数据
数据交换
通讯中涉及的各站周期性地交换2字节数据
从站接收数据并向主站返回数据程序
主站说明
数据将以增量1递增写入从站说明
来自主站的数据被接收
数据返回到主站
显示
操作员控制及监视
发送和接收的数据在PC端的窗口上显示接收的数据必须改变
为该值
在SIMATIC S7端可以实现操作员的监控功能
才能使用程序
•必须被激活
如果满足以上条件来检
测例子程序是否正确运行
3系统结构
本章列出了运行例子所需的硬件和软件
CP 443-1 TCP为从站
然而本文件也可适用于PC和SIMATIC S7站之间的所有S7-BSEND/BRCV通讯
的例子
这就存在确保无故障操作问题
必须做适当修改
PC
通讯处理器CP 1613
采用该协议和BSEND/BRCV
CP 1613和CP 443-1 TCP用作通讯处理器
对其它硬件配置的适用性
注意
CP应为3.0版本或3.0以上版本
Start->Simatic->NCM S7 Industrial Ethernet->Industrial Ethernet Diagnostics
如果CP低于3.0版本从Internet/Intranet下载一个新版本
请阅读
注意
使用不同的CP
如果本例子中使用不同的CP Change_CP”(更换CP)文件
电缆类型取决于所采用的传输介质
例如ELM
•操作系统为Microsoft Windows 95或Windows NT 4.0
•STEP 7 V5.0 SP3注意
• NCM S7 INDUSTRIAL ETHERNET V5.0+ SP3
4所需功能块及其通讯结构
本章包括下列主题
主站/从站端
发送和接收数据的启动总是由PC进行
主站用户程序的顺序执行
•在主站该用户程序调用程序库中的功能
•递增数据
将要写入的数据值以增量1递增在每个读写周期后将传
送的数据值加1
主站的数据被接收
接收的数据被发送至主站
顺序图示
递增
4.2.1BSEND功能块
功能块的用途
BSEND系统功能块将数据从指定的发送缓冲区传送至已定义好的接收缓
冲区一个位存储器区或一个数据块
从站定义了一个ID号
该ID号用于指明联接
4.2.2BRCV功能块
功能块的用途
BRCV功能块将从配置的对方站接收的数据传送至专门的接收缓冲区
一个位存储器或一个数据块
在网络联接的组态中当用BRCV功能块接收数据时
功能块参数的详细描述请参见第5章
5程序结构和程序摘录
本章介绍主站和从站的程序结构5.1主站的程序结构
5.2主站程序摘录5.2.1PC
5.2.2PC
可与SIMATIC S7中的OB1相比
名称
WndProc()
说明
源于应用窗口的事件在该功能中被处理应用系统
都产生一条信息控制值
程序
LRESULT CALLBACK WndProc(HWND hWindow, UINT uiMessage,
WPARAM wParameter, LPARAM lParameter) {
/* 信息处理 */
switch(uiMessage) {/* 指向被点击的菜单 */
case WM_COMMAND:
switch(wParameter) {
/* Menupoint "Write / Read - Start" */
case IDM_START:
/* 调用初始化CP功能 */
my_init();
/* 建立与远程主站的联接 */
my_initiate_request();
break;
default:
break;
}
break;
/* 来自本地CP的S7信息 */
case MY_MSG_ID:
/* 调用处理信息的功能 */
my_receive();
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWindow, uiMessage,
wParameter, lParameter));
}
return (0L);
} /* 结束WndProc */