S71200 CPU 与S7300 CP ISO on TCP通信.docx
《S71200 CPU 与S7300 CP ISO on TCP通信.docx》由会员分享,可在线阅读,更多相关《S71200 CPU 与S7300 CP ISO on TCP通信.docx(11页珍藏版)》请在冰豆网上搜索。
S71200CPU与S7300CPISOonTCP通信
S7-1200CPU与S7-300CPISOonTCP通信(S7-1200作为客户端,S7-300使用Step7)
S7-1200CPU与S7-300之间通过ISOonTCP通信,需要在双方都建立连接,连接对象选择“Unspecified”。
所完成的通信任务为:
①S7-1200将DB3里的100个字节发送到S7-300的DB2中
②S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。
S7-1200CPU的组态编程
1.使用STEP7BasicV10.5软件新建一个项目
在STEP7Basic的“PortalView”中选择“Createnewproject”创建一个新项目
2.添加新设备
然后进入“Projectview”,在“Projecttree”下双击“Addnewdevice”,在对话框中选择所使用的S7-1200CPU添加到机架上,命名为PLC_1。
3.为PROFINET通信口分配以太网地址
在“DeviceView”中点击CPU上代表PROFINET通信口的绿色小方块,在下方会出现PROFINET接口的属性,在“Ethernetaddresses”下分配IP地址为192.168.0.1,子网掩码为255.255.255.0。
4.在S7-1200CPU中调用“TSEND_C”通信指令并配置连接参数和块参数
①在主程序中调用发送通信指令,进入“Projecttree”>“PLC_1”>“Programblocks”>“Main”(OB1)主程序中,从右侧窗口“Instructions”>“ExtendedInstructions”>“Communications”下调用“TSEND_C”指令,并选择“SingleInstance”生成背景DB块。
然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数。
②然后,创建并定义发送数据区DB块。
通过“Projecttree”>“PLC_1”>“Programblocks”>“Addnewblock”,选择“Datablock”创建DB块,选择绝对寻址,点击“OK”键,定义发送数据区为100个字节的数组。
③根据所使用的参数创建符号表,如图1.所示。
图1.创建所使用参数的符号表
④配置连接参数,如图2.所示。
图2.配置连接参数TSEND_Cconnection
⑤配置块接口参数,如图3.所示。
图3.配置TSEND_C块参数TSEND_Cblockparameter
5.调用“TRCV”通信指令并配置块参数。
因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“ConnectionID”号,如图4.所示。
图4.配置T_RCV块参数TRCVblockparameter
S7-300CPU的ISOonTCP通信的组态编程
1.使用STEP7软件新建一个项目并进行硬件组态
创建完新项目,在项目的窗口下,右键菜单里,选择“InsertNewObject”>“SIMATIC300Station”,插入一个S7-300站。
为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/ClockMemory”中设置,如图5所示。
图5.设置时钟脉冲
每一个时钟位都按照不同的周期/频率在0和1之间切换变化,见表1.。
表1.时钟位频率
位
7
6
5
4
3
2
1
0
周期(S)
2
1.6
1
0.8
0.5
0.4
0.2
0.1
频率(Hz)
0.5
0.625
1
1.25
2
2.5
5
10
2.配置以太网模块
进入“HWConfig”中,组态所使用的CPU及“CP343-1”模板。
并新建以态网Ethernet
(1),配置“CP343-1”模板IP地址为:
192.168.0.2,子网掩码为:
255.255.255.0。
如图6.所示。
配置完硬件组态及属性,编译存盘并下载所有硬件组态。
图6.S7-300硬件配置
3.网络组态
打开“NetPro”配置网络,选中CPU,在连接列表里建立新的连接并选择连接对象和通信协议,如图7.所示。
图7.创建新的连接并选择ISO-on-TCP协议
这时会跳出通用信息,如图8所示。
图8.通用信息
然后,进入“Addresses”配置通信双方的IP地址及TSAP地址,如图9所示。
图9.配置通信的IP地址及TSAP地址
配置完连接并编译存盘后,将网络组态下载到S7-300CPU中。
4.软件编程
在OB1中,从“Libraries”>“SIMATIC_NET_CP”>“CP300”下,调用FC5(AG_SEND)、FC6(AG_RECV)通信指令。
创建接收数据区为DB2,定义成100个字节的数组。
CALL“AG_RECV”
//调用FC6
ID
:
=1
//连接号,要与连接配置列表中一致,见图1-51
LADDR
:
=W#16#100
//CP的地址,要与配置中一致,见图1-51
RECV
:
=P#DB2.DBX0.0BYTE100
//接收数据区
NDR
:
=M10.0
//为1时,接收到新数据
ERROR
:
=M10.1
//为1时,有故障发生
STATUS
:
=MW12
//状态代码
LEN
:
=MW14
//接收到的实际数据长度
CALL“AG_SEND”
//调用FC5
ACT
:
=M0.2
//为1时,激活发送任务
ID
:
=1
//连接号,要与连接配置中一致
LADDR
:
=W#16#100
//CP的地址,要与配置中一致
SEND
:
=IB0
//发送数据区
LEN
:
=1
//发送数据的长度
DONE
:
=M10.2
//为1时,发送完成
ERROR
:
=M10.3
//为1时,有故障发生
STATUS
:
=MW16
//状态代码
监控通信结果
下载S7-1200和S7-300中的所有组态及程序,监控通信结果,如图10图11所示。
在S7-1200CPU中向DB3中写入数据:
“11”、“22”、“33”,则在S7-300中的DB2块收到数据也为“11”、“22”、“33”。
在S7-300CPU中,将“2#1111_1111”写入IB0,则在S7-1200CPU中QB0中收到的数据也为“2#1111_1111”。
图10.S7-1200监控表
图11.S7-300变量表