1.控制要求 要求在2台S7-22x CPU之间建立PPI网络,并编写基本通信程序,将乙机VB107~VB111共5个字节数据对应传送到甲机VB107~VB111共5个单元;同时能够将甲机VB137~VB141共5个字节数据对应传送到乙机VB137~VB141单元。然后设计通信系统的调试方案,并进行系统调试。 2.任务分析 S7-200 PLC之间的PPI通信可通过Profibus电缆直接连接到各个CPU的Port0或Port1上,并使用USB/PPI多主电缆与装有STEP 7-Micro/WIN的计算机相连,组成一个使用PPI协议的单主站通信网络。将甲机设为主站,站地址为2;乙机设为从站,站地址为3;编程用的计算机的站地址为O。 S7-200 PLC之间的PPI通信只需在主站侧编写通信程序,从站侧不需要编写通信程序,但需要编写从站的初始化程序。通信程序的编写既可以用网络读( NETR)和网络写(NETW)指令实现.也可以通过调用网络读写向导指令生成的子程序来实现。 在主站侧编程时,需要将VB107~VB111设为接收缓冲区,将VB137~VB141设为发送缓冲区。如果要调试数据,在主站侧则需将要送入对方的数据存入VB137~VB141,并从VB107~VB111提取对方送来的数据;在从站侧则需要将要送人对方的数据存入VB107~VB111,并从VB137~VB141提取对方送来的数据,编程时直接使用即可。 3.实施方案 (1)硬件及软件配置 S7-200 PLC之间的PPI通信至少应具备如表5-9所列的软硬件条件。 表5-9 S7-200 PLC之间的PPI通信硬件设备清单 ![]() (2)端口设置 启动STEP 7-Micro/Win编程软件,然后按以下步骤设置甲乙PLC的端口参数。 ①用PC/PPI多主站电缆将甲机PLC连接到编程计算机,然后接通甲机PLC的电源。执行菜单命令“查看”→“组件”→“系统块”,打开系统块设置对话框并选中通信端口选项:或者在视窗左侧的浏览条中用鼠标点击“系统块”图标展开“系统块”命令集,然后双击“通信端口”命令图标,打开通信端口设置对话框,如图5-25所示。 将甲机PLC的端口0的网络地址设为2,选择波特率为9.6Kbps,单击“确认”按钮,再将系统块参数下载到甲机PLC。 ②用PC/PPI多主站电缆将乙机PLC连接到编程计算机,然后接通乙机PLC的电源并在图5-26所示对话框内将乙机PLC的端口0的网络地址设为3,选择波特率为9.6Kbps,单击“确认”按钮,再将系统块参数下载到乙机PLC。 ③参照图5-19连接好网络设备,接通甲乙PLC的电源并利用STEP 7-Micro/Win的网络搜索功能搜索已连接到网络上的S7-200 CPU。 (3)方案1:用NETR和NETW指令编写PPI通信程序 S7-200 PLC之间的PPI通信可以在主站侧通过调用网络读(NETR)和网络写(NETW)指令实现数据的交换;从站侧不需要编写通信程序,只需向数据缓冲区提供数据或从缓冲区提取数据即可。 1)编写2#主站侧的通信程序 使用网络读(NETR)指令来读取从站的数据,需要首先参照表5 7对主站的通信端口进行初始化设置,如果连接的是端口0,则通过SMB30进行设置;如果连接的是端口1,则通过SMB130进行设置。本例使用甲机PLC的端口0,将2#站设为PPI主站模式,通信波特率设为9600bps、每个字符的位数设为8位、不进行校验。 将2#站设为主站模式将TBL首字节地址设为VB100,然后将从站地址“3”送入到VB101,将从站数据区指针值“VB107”传送到本站VD102,将接收数据的字节数“5”传送到VB106。如果使用网络写(NETW)指令将数据发送到从站,则需要将TBL首字节地址设为VB130,然后将从站地址“3”送人到VB131,将从站数据区指针值“VB137”传送到本站VD132,将接收数据的字节数“5”传送到VB136。 2#主站(甲机)LAD程序如图5-26所示,对应的STL程序如图5-27所示。 ![]() ![]() 图5-26 2#主站(甲机)LAD基本通信程序 2)编写3#从站侧通信初始化程序 通信初始化程序需参照表5 3对从站的通信端口进行初始化设置,如果连接的是端口0,则通过SMB30进行设置;如果连接的是端口1,则通过SMB130进行设置。本例使用乙机PLC的端口0,将3#站设为PPI从站模式,通信波特率必须与主站相同设为9600bps、每个字符的位数也必须与主站相同设为8位、不进行校验。 3#从站(乙机)通信初始化LAD程序如图5-28所示,对应的STL程序如图5 29所示。 ![]() 图5-27 2#主站(甲机)STL基本程序 ![]() 图5-28 3#从站(乙机)LAD通信初始化程序 ![]() 图5-29 3#从站(乙机)STL通信初始化程序 (4)方案2:用网络读写指令向导生成通信程序 使用网络读写指令向导,按步骤设置以下选项。 ①启动网络读写向导,将“您希望配置多少项网络读/写操作?”选项设为“2”;将“这些读/写操作将通过哪一个PLC端口通信?”选项设为“0”;将“可执行子程序应如何命名?”设为默认名“NET_EXE”。 ②按图5-30设置NETR操作的参数。 ③按图5-31设置NETW操作的参数。 ![]() 图5-30 设置NETR操作参数 ![]() 图5-31 设置NETW操作参数 操作完毕将生成名称为“NET EXE”的通信子程序。由网络读写指令向导生成的通信子程序(NET_EXE)为用户提供了实用的程序参数信息,如图5-32所示。 ![]() 图5-32 通信子程序(NET_EXE)参数信息 在2#主站的主程序内调用由网络读写指令生成的子程序“NET_EXE”,并编写用户程序,LAD程序如图5 33所示,对应的STL程序如图5-34所示。 ![]() 图5-33 2#主站LAD基本通信程序 4.方案调试 为了对通信系统进行调试,可在主从双方PLC上编写相应的用户程序,通过用户程序来测试双方的数据是否能够传送到对方,是否能够接收到对方的数据。本例的用户程序要求实现用甲机的控制按钮控制乙机所连电动机(简称为电动机乙)启停,并将电动机乙状态反馈到甲机;用乙机的控制按钮控制甲机所连电动机(简称为电动机甲)启停,并将电动机甲的状态反馈到乙机。另外,要求为2台电动机配置本地的启/停控制按钮。 ![]() 图5-34 2#主站的STL基本通信程序 (1)I/O资源分配 甲乙S7-200 PLC的I/O资源分配如表5-10所示。 表5-10 甲乙S7-200 PLC的I/O资源分配 ![]() (2)甲机PLC的用户程序 甲机(2#主站)PLC的用户程序只需在原基本通信程序的基础上,增加部分程序段。 1)用户自定义符号表 用户自定义符号表如图5-35所示。 ![]() 图5-35 甲机PLC的用户自定义符号表 2)用户程序 方案1:在由网络读写指令编写的通信程序基础上编写LAD用户程序如图5-36所示,对应的STL程序如图5-37所示。 方案2:在由网络读写指令向导生成的通信程序基础上编写LAD用户程序如图5-38所示,对应的STL用户程序如图5-39所示。 (3)乙机PLC的用户程序 ![]() 图5-36 2#主站的LAD用户程序 ![]() 图5-37 2#主站的STL用户程序 乙机(3#从站)PLC的用户程序只需在原通信初始化程序的基础上,增加部分程序段。 1)用户自定义符号表 用户自定义符号表如图5-40所示。 2)用户程序 LAD用户程序如图5-41所示,对应的STL用户程序如图5-42所示。 将甲机和乙机PLC控制程序分别下载到各自的CPU中,然后分别操作本地及远程启动和停止按钮,检验电动机能否按要求正常启动和停机,并显示远程电动机的状态。也可以通过计算机监视甲乙主从PLC的数据能否正常交换。 ![]() 图5-38 2#主站的LAD用户程序 ![]() 图5-39 2#主站的STL用户程序 ![]() 图5-40 乙机PLC的用户自定义符号表 ![]() 图5-41 3#从站的LAD用户程序 ![]() 图5-42 3#主站的STL用户程序
|
|
来自: 昵称38321301 > 《文件夹1》