首页 理论教育 案例分析:以太网通信程序的PLC设备组态与参数设置

案例分析:以太网通信程序的PLC设备组态与参数设置

时间:2026-01-23 理论教育 可欣 版权反馈
【摘要】:图8-11200 之间以太网通信硬件原理图3.组态网络创建一个新项目,名称为“以太网通信程序”,添加两个PLC,均为CPU 1215C,分别命名为PLC_1 和PLC_2。在项目视图PLC 的“设备组态”中,单击CPU 的属性的“以太网地址”选项,可以设置PLC 的IP 地址,在此设置PLC_1 和PLC_2 的IP 地址分别为192.168.0.10 和192.168.0.20,地址的设置方法请参考前文2.3 的介绍。表8-1TSEND_C 指令及参数表8-2TRCV_C 指令及参数设置PLC_1 的TSEND_C 连接参数。为了使PLC_1 能接收到来自PLC_2 的数据,在PLC_1 调用接收指令TRCV,并组态其参

1.控制要求

将设备1 的IBO 中数据发送到设备2 的接收数据区QBO 中,设备1 的QBO 接收来自设备2 发送的IBO 中数据。

2.硬件原理图

根据控制要求可绘制出如图8-1所示的原理图,设备2 上的输入端及设备1 上的输出端未详细画出,两设备(PLC)通过带有水晶头的网线相连接。

图示

图8-1 1200 之间以太网通信硬件原理图

3.组态网络

创建一个新项目,名称为“以太网通信程序”,添加两个PLC,均为CPU 1215C,分别命名为PLC_1 和PLC_2。分别启用两个CPU 中的系统和时钟存储器字节MB1 和MB0。

在项目视图PLC 的“设备组态”中,单击CPU 的属性的“以太网地址”选项,可以设置PLC 的IP 地址,在此设置PLC_1 和PLC_2 的IP 地址分别为192.168.0.10 和192.168.0.20,地址的设置方法请参考前文2.3 的介绍。切换到“网络视图”(或用鼠标双击项目树的“设备和网络”选项),要创建PROFINET 的逻辑连接,首先进行以太网的连接。选中PLC_1 的PROFINET 接口的绿色小方框,拖动到另一台PLC 的PROFINET 接口上,松开鼠标,则连接建立,保存窗口设置,如图8-2所示。

图示

图8-2 建立以太网连接

4.PLC_1 的编程

(1)在PLC_1 的OB1 程序中调用TSEND_C 指令。

打开PLC_1 主程序OB1 的编辑窗口,在右侧“通信”指令文件夹中,打开“开放式用户通信”文件夹,用鼠标双击或拖动TSEND_C 指令到指定程序段中,自动生成名称为“TSEND_C_DB”的背景数据块。TSEND_C 指令可以用TCP 协议或ISO on TCP 协议。它们均使本地机与远程机进行通信,TSEND_C 指令使本地机向远程机发送数据。TSEND_C 指令及参数如表8-1所示。TRCV_C 指令使本地机接收远程机发送来的数据,TRCV_C 指令及参数如表8-2所示。

表8-1 TSEND_C 指令及参数

图示

图示

表8-2 TRCV_C 指令及参数

图示

(2)设置PLC_1 的TSEND_C 连接参数。

要设置PLC_1 的TSEND_C 连接参数,先选中指令,用鼠标右键单击该指令,在弹出的对话框中单击“属性”,打开属性对话框,然后选择其左上角的“组态”选项卡,单击其中的“连接参数”选项,如图8-3所示。在右边窗口伙伴的“端点”中选择“PLC_2”,则接口、子网及地址等随之自动更新。此时“连接类型”和“连接ID”两栏呈灰色,即无法进行选择和数据的输入。在“连接数据”栏中输入连接数据块“PLC_1_Send_DB”,或单击“连接数据”栏后面的倒三角,单击“新建”生成新的数据块。单击本地PLC_1 的“主动建立连接”复选框,此时“连接类型”和“连接ID”两栏呈现亮色,即可以选择“连接类型”,ID 默认是“1”。在伙伴站的“连接数据”栏输入连接的数据块“PLC_2_Receive_DB”,或单击“连接数据”后面的倒三角,单击“新建”生成新的数据块,新的连接数据块生成后连接ID 也自动生成,这个ID 号在后面的编程中会用到。

图示(https://www.xing528.com)

图8-3 设置TSEND_C 连接参数

连接类型可以选择为“TCP”“ISO on TCP”和“UDP”。这里选择“TCP”,在“地址详细信息”栏可以看到通信双方的端口号为2000。如果连接类型选择为“ISO on TCP”,则需要设定TSAP 地址,此时本地PLC_1 可以设置成“PLC1”,伙伴方PLC_2 可以设置成“PLC2”。使用ISO on TCP 通信,除了连接参数的定义不同,其他组态编程与TCP 通信完全相同。

(3)设置PLC_1 的TSEND_C 块参数。

要设置PLC_1 的TSEND_C 块参数,先选中指令,用鼠标右键单击该指令,在弹出的对话框中单击“属性”,打开属性对话框,然后选择左上角的“组态”选项卡,单击其中的“块参数”选项,如图8-4所示。在输入参数中,“启动请求”使用“Clock_2Hz”,上升沿激发发送任务,“连接状态”设置常数1,表示建立连接并一直保持连接。在输入/输出参数中,“相关的连接指针”为前面建立的连接数据块LC_1_Send_DB,“发送区域”中使用指针寻址或符号寻址,本案例设置为“P#I0.0 BYTE 1”,即定义的是发送数据IB0 开始的1B 数据。在此只需要在“起始地址”栏中输入I0.0,在“长度”栏输入1,在后面方框中选择“BYTE”即可。“发送长度(LEN)”设为1,即最大发送的数据为1 B。在输出参数中,请求完成(DONE)、请求处理(BUSY)、错误(ERROR)、错误信息(STATUS)可以不设置或使用数据块中变量。

设置TSEND_C 指令块参数,程序编辑器中的指令将随之更新,也可以直接编辑指令,如图8-5所示。

(4)在OB1 主程序中调用TRCV 接收指令。

为了使PLC_1 能接收到来自PLC_2 的数据,在PLC_1 调用接收指令TRCV,并组态其参数。

图示

图8-4 设置TSEND_C 块参数

图示

图8-5 设置TSEND_C 指令块参数

接收数据与发送数据使用同一连接,所以使用不带连接管理的TRCV 指令,该指令在右侧指令树中的“通信\ 开发式用户通信\ 其他”的指令夹中,其编程如图8-6所示。该指令中“EN_R”参数为1,表示准备好接收数据;ID 号为1,使用的是TSEND_C 的连接参数中的“连接ID”的参数地址;“DATA”为QB0,表示接收的数据区;“RCVD_LEN”为实际接收到数据的字节数。

本地使用TSEND_C 指令发送数据,在通信伙伴(远程站)就得使用TRCV_C 指令接收数据。双向通信时,本地调用TSEND_C 指令发送数据和TRCV 指令接收数据;在远程站调用TRCV_C 指令接收数据和TSEND 指令发送数据。TSEND 和TRCV 指令只有块参数需要设置,无连接参数需要设置。

图示

图8-6 调用接收指令TRCV 并组态参数

5.PLC_2 的编程

要实现上述通信,还需要在PLC_2 中调用TRCV_C 和TSEND 指令,并组态其参数。打开PLC_2 主程序OB1 的编辑窗口,在右侧“通信”指令文件夹中,打开“开放式用户通信”文件夹,双击或拖动TRCV_C 指令至某个程序段中,自动生成名称为“TRCV_C_DB”的背景数据块。组态TRCV_C 指令的连接参数如图8-7所示,连接参数的组态与TSEND_C基本相似,各参数要与通信伙伴CPU 对应设置。

图示

图8-7 组态TRCV_C 指令的连接参数

设置通信接收TRCV_C 指令块参数,如图8-8 程序段1所示,PLC_2 是将IB0 中数据发送到PLC_1 的QB0 中,则在PLC_2 调用TSEND 发送指令并组态相关参数,发送指令与接收指令使用同一个连接,所以也使用不带连接的发送指令TSEND,其块参数组态如图8-8程序段2所示。PLC_2 的OB1 程序包含TRCV_C 指令和TSEND 指令,如图8-8所示。

图示

图8-8 PLC_2 的OB1 程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈