1.打开STEP 7 Basic软件并新建项目
选择STEP 7 Basic菜单的“Portal View→创建新项目”选项创建一个新项目。
2.添加硬件并命名PLC
进入 Project view,在项目树下双击添加新块选项,在打开的对话框中选择所使用的S7-1200 PLC CPU添加到机架上,命名为PLC_1,如图8.9所示。同样方法再添加通信伙伴的S7-1200 PLC CPU,命名为PLC_2。
图8.9 添加新设备
为了编程方便,使用CPU属性中定义的时钟位,定义方法如下:在“项目树→PLC_1→设备组态”中选中 CPU,然后在“属性”窗口中的“属性→系统和时间的存储器”选项区域中,将系统位定义在MB1,时钟位定义在MB0,如图8.10所示。
图8.10 系统位与时钟位
时钟位主要使用M0.3,它是以2 Hz的速率在0和l之间切换的一个位,可以使用它自动激活发送任务。
在设备视图中单击 CPU 上代表 PROFINET 通信口的绿色小方块,在下方会出现PROFINET接口的属性,在以太网地址选项区域中分配 IP 地址为 192.168.0.1,子网掩码为255.255.255.0,如图8.11所示。
用同样的方法,在同一个项目里添加另一个新设备 S7-1200 PLC CPU 并为其分配 IP 地址为192.168.0.2。
4.创建CPU之间的逻辑网络连接
在项目树中选择“项目树→设备组态→网络视图”,创建两个设备的连接。单击PLC_l上的PROFINET通信口的绿色小方框,然后拖拽出一条线连接到另外一个PLC_2上的PROFINET通信口上,松开鼠标左键,连接就建立起来了,如图8.12所示。
图8.11 分配IP地址
图8.12 建立两个CPU的逻辑连接
5.在PLC_1中调用并配置TSEND_C、T_RCV通信指令
1)在PLC_1的OB1中调用TSEND_C通信指令
在第一个CPU中调用发送通信指令,进入“项目树→PLC_l→程序块→OBl主程序”中,从右侧窗口选择“指令→扩展指令→通信”,调用TSEND_C指令,并选择单个实例选项生成背景 DB 块。然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数,如图 8.13所示。
图8.13 TSEND_C指令接口参数
2)定义PLC_1的TSEND_C连接参数
PLC_1的TSEND_C指令的连接参数需要在指令下方的属性窗口中选择“属性→组态→连接参数”进行设置,如图8.14所示。
连接参数说明如下:
(1)端点。可以通过单击选择按钮选择伙伴CPU:PLC_2。
(2)连接类型。选择通信协议为TCP(也可以选择ISO on TCP协议)。
(3)连接ID。连接的地址ID号,这个ID号在后面的编程里会用到。
图8.14 连接TSEND_C连接参数
(4)连接数据。创建连接时,系统会自动生成本地的连接DB块,所有的连接数据都会存在于该DB块中。通信伙伴的连接DB块,只有在对方(PLC_2)建立连接后才能生成,然后在本地(PLC_1)中才能通过选择按钮选择。
(5)Active connection setup。选择本地PLC_l作为主动连接。
(6)地址详细信息。定义通信伙伴方的端口号为:2000;如果连接类型选用的是ISO on TCP协议,则需要设定的是TSAP地址(ASCII码形式),本地PLC_l可以设置成“PLC1”,伙伴方PLC_2可以设置成“PLC2”。
3)定义PLC_1的TSEND_C发送通信块接口参数
(1)根据所使用的接口参数定义符号表。在“项目树→PLC_1→PLC变量”中定义所使用的符号名,如图8.15所示。
图8.15 定义符号表
(2)创建并定义PLC_1的发送数据区DB块选择“项目树→PLC_1→程序块→添加新块”,再选择“数据块”选项创建 DB 块,单击OK按钮;定义发送区为100字节的数组;然后鼠标右击,选择“属性”,在弹出的属性窗口中,再选中“属性”,然后把“优化的块访问”前面的勾去掉。(这一步是由于此处用到的是绝对寻址,而STEP 7 BASIC V13默认状态下是符号寻址,把“优化的块访问”前面的勾去掉就是选择绝对寻址。)上述步骤分别依次如图8.16、图8.17所示。
图8.16 定义发送数据区为字节类型的数组
图8.17
注意:对于双边编程通信的CPU,如果通信数据区使用DB块,既可以将DB块定义成符号寻址,也可以定义成绝对寻址。使用指针寻址方式,必须创建绝对寻址的DB块。
(3)定义PLC_1的TSEND_C发送通信块接口参数,如图8.18所示。
图8.18 定义TSFN D_C接口参数
参数说明如表8.7、表8.8所示。(www.xing528.com)
表8.7 输入接口参数
表8.8 输出接口参数
4)在PLC_l的OB1中调用接收指令T_RCV并配置基本参数
为了实现PLC_1接收来自PLC_2的数据,在PLC_l中调用接收指令T_RCV并配置基本参数。
接收数据与发送数据使用同一连接,因此使用不带连接管理的T_RCV指令。根据所使用的接口参数定义符号表(见图8.15)配置接口参数,如图8.19所示。
图8.19 调用TRCV指令并配置接口参数
参数说明如下表8.9、表8.10所示。
表8.9 输入接口参数
表8.10 输出接口参数
6.在PLC_2中调用并配置TRCV_C通信指令
具体操作步骤如下:
(1)在PLC_2中调用TRCV_C通信指令,进入“项目树→PLC_2→程序块→Main主程序”中,从右侧窗口的“指令→扩展指令→通讯”下调用TRCV_C指令,并选择“Single Instance”选项生成背景DB块。
(2)定义连接参数,PLC_2的TRCV_C指令的连接参数需要在指令下方的“属性窗口属性→连接参数”选项区域中进行设置,如图8.20所示。
连接参数的配置与TSEND_C的连接参数配置基本相似,各参数要与通信伙伴CPU对应设置。
图8.20 TRCV_C的连接参数配量
(3)定义接收通信块参数。首先,创建并定义接收数据区 DB 块。选择“项目树→PLC_2→程序块→添加新块”,再选择Data block创建DB块,选择符号寻址,单击OK按钮,定义接收数据区为100字节的数组,如图8.21及图8.22所示。然后,定义所使用参数的符号地址,如图 8.23 所示。最后,定义接收通信块接口参数,如图8.24所示。
参数配置如表8.11、表8.12所示。
图8.21 创建接收数据区DB块
图8.22 定义接收区为100字节的数组
图8.23 TRCV_C指令所使用的符号地址
图8.24 TRCV_C块参数配置
表8.11 输入接口参数
注意:如果使用符号寻址的DB块作为通信数据区,DATA参数只能使用符号地址,而不能使用指针地址。
表8.12 输出接口参数
(4)PLC_2将I/O输入数据IB0发送到PLC_1的输出QB0中,则在PLC_2中调用发送指令并配置块参数,发送指令与接收指令使用同一个连接,所以使用不带连按的发送指令T_SEND,如图8.25所示。
图8.25 调用T_SEND指令并配置块接口参数
参数说明如表8.13、表8.14所示。
表8.13 输入接口参数
表8.14 输出接口参数
7.下载硬件组态及程序并监控通信结果
下载两个CPU中的所有硬件组态及程序,从监控表中可以看到,PLC_1的TSENG_C指令发送数据“10”“21”“32”,PLC_2接收到数据“10”“21”“32”。PLC_1及PLC_2的监控表如图8.26所示。
图8.26 PLC_1及PLC_2的监控表
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。