1.同一个项目编程的S7-300和S7-1200的S7通信
从固件版本V2.0开始,S7-1200既可以作S7通信的服务器,也可以作客户机。博途是西门子的新软件平台,随书光盘中的例程“300_1200IE_S7”是用博途的STEP 7 V13编写的,CPU 314-2PN/DP作客户机,CPU 1215C AC/DC/Rly V4.0作服务器。它们的IP地址分别为192.168.0.1和192.168.0.2。
在网络视图中连接S7-300和S7-1200的以太网接口(见图8-14)。单击左上角的“连接”按钮,设置连接类型为S7连接。右键单击CPU 314-2PN/DP,执行快捷菜单中的“添加新连接”命令。在打开的“创建新连接”对话框中(见图8-15),采用默认的连接伙伴“未指定”,单击“添加”和“关闭”按钮,生成ID号为1的新连接。
选中图8-14中的S7连接,在下面的属性视图中输入通信伙伴的IP地址192.168.0.2。选中左边窗口的“特殊连接属性”,右边窗口可以看到“单向组态”和由本地站点建立连接。选中左边窗口的“地址详细信息”,设置S7-300的TSAP(传输服务访问点)为10.02,S7-1200的TSAP为03.01。
S7-1200作服务器时,需要选中它的设备视图的常规属性左边窗口的“保护”,在“连接机制”区激活复选框“允许从远程伙伴(PLC、HMI、OPC、…)使用PUT/GET通信访问”。
为S7-300生成DB1和DB2,为S7-1200生成DB3和DB4,在这些数据块中生成由100个整数组成的数组。不要启用数据块属性中的“优化的块访问”功能。
在双方的设备视图中,设置MB0为时钟存储器字节。在S7-300的OB1中调用功能块PUT(见图8-17),在M0.3的上升沿,每0.5s将本机的DB1中的数据写入S7-1200的DB4。调用功能块GET,每0.5s读取S7-1200的DB3中的数据,用本机的DB2保存。
图8-14 组态S7连接的属性
图8-15 “创建新连接”对话框
单击网络视图最右边的 按钮,显示“网络数据”。在“连接”选项卡可以看到图8-16中的连接表。
图8-16 连接表
在双方的初始化组织块OB100中,将DB1和DB3中要发送的100个字分别预置为16#3333和16#1200,将保存接收到的数据的DB2和DB4中的100个字清0。在S7-300的循环中断组织块OB33中,每0.5s将要发送的第一个字DB1.DBW0加1。在S7-1200的OB1中,用周期为0.5s的时钟脉冲M0.3的上升沿,将要发送的第1个字DB3.DBB0加1。
将用户程序和组态信息分别下载到S7-1200和S7-300的CPU,用电缆连接它们的以太网接口,它们进入运行模式后,用监控表(相当于STEP 7 V5.5的变量表)可以看到双方接收到的第一个字DB2.DBW0和DB4.DBW0不断增大(见图8-18和图8-19),DB2和DB4 中其他的字是通信伙伴在首次扫描时预置的值。
图8-17 客户机的OB1
图8-18 S7-300接收到的部分数据
图8-19 S7-1200接收到的部分数据
2.用不同的项目编程的S7-300和S7-1200的S7通信
随书光盘的文件夹“300+1200IE_S7”中的例程“1200作服务器”是博途中的程序。CPU 1215C的IP地址为192.168.0.2。其硬件组态和OB1、OB100中的程序与例程“300_1200IE_S7”中CPU 1215C的相同。(www.xing528.com)
用STEP 7 V5.5打开随书光盘的文件夹“300+1200IE_S7”中的例程“314作客户机”,在NetPro中建立的是S7单向连接,伙伴为“未指定”(见图8-9)。在连接属性对话框中设置伙伴的IP地址为192.168.0.2(见图8-20),在“地址详细信息”对话框中设置通信双方的TSAP。
图8-20 S7连接属性对话框
在OB1中调用功能块GET,读取S7-1200的DB3中的100个整数数据,保存在本机的DB2中。调用功能块PUT,将本机的DB1中的100个整数数据写入S7-1200的DB4中。
调试时可以用S7-300的变量表和S7-1200的监控表监控双方接收到的数据。
3.S7-300与S7-200SMART使用S7连接的以太网通信
S7-200 SMART是国内广泛使用的S7-200的升级换代产品。它继承了S7-200的诸多优点,指令与S7-200基本上相同。CPU集成了以太网端口和RS-485端口,CPU的最大点数为60点。以太网端口除了用来下载程序和监控,还可以用来与其他S7 CPU或HMI通信。S7-200 SMART可以作单向S7通信的客户机或服务器。
S7-200 SMART作客户机时,用编程软件STEP 7 Micro/WIN SMART中的GET/PUT向导设置少量的参数,自动生成用于通信的子程序NET_EXE、保存组态数据的数据块和符号表。在OB1中调用NET_EXE,就可以实现用GET/PUT向导设置的通信功能(见参考文献[8])。
用STEP 7 V5.5打开随书光盘的文件夹“300_200SMART”中的例程“314作客户机”。在NetPro中建立的是S7单向连接,伙伴为“未指定”。在连接属性对话框中设置的伙伴IP地址为192.168.0.2,在“地址详细信息”对话框中设置的S7-300的TSAP为10.02,S7-200 SMART的TSAP为03.01。
在下面的S7-300的OB1程序中,S7-200 SMART的V区被映射为DB1,要读取的S7-200 SMART的VB100~VB299被映射为P#DB1.DBX100.0 BYTE 200,要写入的S7-200 SMART的VB300~VB499被映射为P#DB1.DBX300.0 BYTE 200。分别用DB1和DB2保存S7-300要发送的数据和接收到的数据。M8.1是周期为200ms的时钟脉冲。
程序段1:时钟脉冲信号反相
程序段2:读取通信伙伴的数据
程序段3:向通信伙伴的数据区写入数据
在OB100中将要发送的DB1中的数据字初始化为16#4001,将接收数据的DB2中的各个字清0,OB35每100ms将发送的第一个字DB1.DBW0加1。
随书光盘的文件夹“300_200SMART”中的“SMART作服务器.smart”是S7-200 SMART的程序,以太网端口的IP地址为192.168.0.2,在OB1中将V区中要发送的VW100~VW298初始化为2#0202,将接收数据的VW300~VW498清0,每秒钟将发送的第一个字VW100加1。
图8-21和图8-22分别是S7-300和S7-200 SMART接收到的部分数据,双方接收到第一个字在不断增大。
图8-21 S7-300的变量表
图8-22 S7-200 SMART的状态图表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。