6ES7211-1BE40-0XB0北京西门子授权代理商

供应商
浔之漫智控技术(上海)有限公司
认证
联系电话
158****1992
全国服务热线
158****1992
经理
聂聪
所在地
上海市松江区广富林路4855弄88号3楼
更新时间
2023-10-26 04:00

详细介绍

6es7211-1be40-0xb0北京西门子授权代理商

s7-1200 和 s7-1200 之间 tcp 通信

s7-1200 与 s7-1200 之间的以太网通信可以通过 tcp 协议来实现,使用的通信指令是在双方 cpu 调用t-block (tsend_c,trcv_c,tcon,tdiscon,tsend,trcv) 指令来实现。通信方式为双边通信,因此tsend 和 trcv 必须成对出现。

硬件和软件需求及所完成的通信任务

硬件:
① s7-1200 cpu
② pc(带以太网卡)
③ tp电缆(以太网电缆)

软件:
step7 v11 or higher

所完成的通信任务:
① 将plc_1 的通信数据区 db3 块中的 100 个字节的数据发送到 plc_2 的接收数据区 db4 块中。
② 将plc_2 的通信数据区 db3 块中的 100 个字节的数据发送到 plc_1 的接收数据区 db4 块中。

通信的编程,连接参数及通信参数的配置

1. 打开 step7 v11 软件并新建项目
在 step7 v11的 “portal view” 中选择 “create new project” 创建一个新项目

2. 添加硬件并命名plc
然后进入 “project view”,在“project tree” 下双击 “add newdevice”,在对话框中选择所使用的s7-1200 cpu添加到机架上,命名为 plc_1,如图1所示。
同样方法再添加通信伙伴的s7-1200 cpu ,命名为 plc_2。

图1. 添加新设备

为了编程方便,使用 cpu 属性中定义的时钟位,定义方法如下:
在 “project tree” > “plc_1” > “device configuration” 中,选中 cpu,然后在下面的属性窗口中,“properties” > “system and clock memory”下,将系统位定义在mb1,时钟位定义在mb0,如图2所示。
时钟位我们主要使用 m0.3,它是以2hz 的速率在0和1之间切换的一个位,可以使用它去自动激活发送任务。

图2. 系统位与时钟位
3. 为 profinet 通信口分配以太网地址
在 “device view”中点击 cpu 上代表profinet 通信口的绿色小方块,在下方会出现profinet 接口的属性,在“ethernet addresses” 下分配ip 地址为 192.168.0.1 ,子网掩码为255.255.255.0,如图3.所示。
图3. 分配ip 地址

同样方法,在同一个项目里添加另一个新设备s7-1200 cpu 并为其分配 ip 地址为192.168.0.2

4. 创建 cpu之间的逻辑网络连接
在项目树 “project tree”>“devices & networks” >“networks view”视图下,创建两个设备的连接。用鼠标点中 plc_1 上的profinet通信口的绿色小方框,然后拖拽出一条线,到另外一个plc_2上的profinet通信口上,松开鼠标,连接就建立起来了,如图4所示。
图4. 建立两个 cpu的逻辑连接 

在 plc_1 中调用并配置“tcon”、“tsend”、“trcv” 通信指令

1.在 plc_1 的 ob1 中调用“tcon” 通信指令

① 在个 cpu 中调用发送通信指令,进入 “project tree” > “ plc_1” > “programblocks” > “ob1” 主程序中,从右侧窗口 “instructions” > “communications”> “open user communications”下调用 “tcon” 指令,创建连接,如图5所示。
图5. 调用“tcon”通信指令

② 创建db2 分配连接参数,见图6所示

图6. 创建连接数据块 db2(con_db)


③ 定义plc_1的 “tcon”连接参数 
plc_1 的 tcon 指令的连接参数需要在指令下方的属性窗口“properties”>“configuration”>“connection parameter”中设置,如图7所示。
图7. 定义 tcon 连接参数 
连接参数说明:

end point:可以通过点击选择按钮选择伙伴cpu :plc_2
connection type:选择通信协议为 tcp(也可以选择 iso ontcp 或udp协议)
connection id :连接的地址 id 号,这个 id号在后面的编程里会用到
connection data

:创建连接时,生成的con_db块。见图2所示

active connection setup:选择本地 plc_1作为主动连接
address details :定义通信伙伴方的端口号为:2000;如果选用的是iso on tcp 协议,则需要设定的tsap 地址(ascii 形式),本地 plc_1可以设置成“plc1”,伙伴方 plc_2可以设置成“plc2”。    
2.定义 plc_1 的“tsend”发送通信块接口参数

① 调用 “tsend” 在ob1内调用 发送100个字节数据到plc2中 
进入 “project tree” > “ plc_1” > “program blocks” > “ob1”主程序中,从右侧窗口 “instructions” > “communications” > “open usercommunications”下调用 “tsend” 指令,如图8所示。
图8. 调用 tsend 
② 创建并定义plc_1的发送数据区 db 块。
通过“project tree”>“plc_1”>“program blocks”>“add newblock”,选择“data block” 创建 db 块,选择寻址,点击“ok”键,定义发送数据区为100个字节的数组,如图9及图10所示。


图9. 创建发送数据区 db 块
注意:对于双边编程通信的 cpu ,如果通信数据区使用 db 块,既可以将 db块定义成符号寻址,也可以定义成寻址。使用指针寻址方式,必须创建寻址的 db 块。

图10. 定义发送数据区为字节类型的数组 图 plc1_tsendc_data

③ 定义 plc_1 的“tsend”发送通信块接口参数,如图11所示。


图11. 定义 tsend 接口参数
参数说明:
输入接口参数:

req  

:= m0.3

// 使用 2hz 的时钟脉冲,上升沿激活发送任务

id: = 1//创建连接id

len

:= 100

//发送数据长度

data 

:= p#db3.dbx0.0 byte 100

// 发送数据区的数据,使用指针寻址时,db块要选用寻址

输出接口参数:

done

:= m300.0

//任务执行完成并且没有错误,该位置 1

busy 

:= m300.1

// 该位为 1,代表任务未完成,不能激活新任务

error   

:= m300.2

//通信过程中有错误发生,该位置 1

status

:= mw302

//有错误发生时,会显示错位信息号

3.在 plc_1 的ob1中调用接收指令t_rcv 并配置基本参数

为了实现 plc_1 接收来自 plc_2 的数据,则在 plc_1 中调用接收指令t_rcv 并配置基本参数。

① 创建并定义plc_1的接收数据区 db 块。
通过“project tree”>“plc_1”>“program blocks”>“add newblock”,选择“data block” 创建 db 块,选择寻址,点击“ok”键,定义发送数据区为100个字节的数组,如图12及图13所示。


图12. 创建接收数据区 db 块
注意:对于双边编程通信的 cpu ,如果通信数据区使用 db 块,既可以将 db块定义成符号寻址,也可以定义成寻址。使用指针寻址方式,必须创建寻址的 db 块。

图13. 定义接收数据区为字节类型的数组

② 调用 “trcv” 在ob1内调用 
进入 “project tree” > “ plc_1” > “program blocks” > “ob1”主程序中,从右侧窗口 “instructions” > “communications” > “open usercommunications”下调用 “trcv” 指令,配置接口参数,如图14所示。
图14. 调用 trcv 指令并配置接口参数

参数说明:
输入接口参数:

en_r

:= true

// 准备好接收数据

id

:= 1

// 连接号,使用的是 tcon 的连接参数中 id号

len

// 接收数据长度为 100 个字节

data

:= p#db4.dbx0.0 byte 100

// 接收数据区的地址

ndr

:= m310.0

// 该位为 1,接收任务成功完成

busy

:= m310.1

error

:= m310.2

// 通信过程中有错误发生,该位置 1

:= mw312

// 有错误发生时,会显示错误信息号

rcvd_len  

:= mw314

// 实际接收数据的字节数

注意:len设置为 65535 可以接收变长数据。


西门子s7-1200 cpu的面板,以及s7-1200 cpu的扩展能力。s7-1200cpu将微处理器、集成电源、输入电路和输出电路集成到一个设计紧凑的外壳中,以形成功能强大的plc。图中所示为电源接口位置。

电源接口位置

    s7-1200cpu有三类状态指示灯,用于指示cpu模块的运行状态。其中run/stop指示灯纯橙色指示stop模式,纯绿色指示run模式,闪烁指示cpu正在启动。error状态指示灯,红色闪烁指示有错误,如cpu内部错误,存储卡错误或组态错误等,纯红色指示硬件出现故障,maint状态指示灯在每次插入存储卡时闪烁,此处为存储卡插槽和io状态指示灯,通过io状态指示灯的点亮或熄灭,来指示各种输入或输出的状态。

io状态指示灯

   各种数字量信号模块还提供了指示模块状态的诊断指示灯,绿色指示模块处于运行状态,红色指示模块有故障或处于非运行状态。各模拟量信号模块为各路模拟量输入和输出提供了io状态指示灯,绿色指示通道已组态且处于激活状态,红色指示个别模拟量输入或输出处于错误状态。此外各模拟量信号模块还提供有指示模块状态的诊断指示灯,绿色指示模块处于运行状态,红色指示模块有故障或处于非运行状态。

诊断指示灯

    s7-1200 cpu提供了一个profinet接口,用于网络通信。s7-1200cpu还提供了两个指示profinet通信状态的指示灯,打开底部端子块的盖板可以看到,link指示灯点亮时,指示连接成功。xtx指示灯点亮时,指示传输活动。拆下此处挡板可以安装一个信号板,通过信号板可以在不增加空间的前提下,给cpu增加io点数。另外s7-1200的接线端子是可拆卸的。

安装信号板

   cpu的扩展能力。s7-1200提供了各种信号模块和信号板,用于扩展cpu的能力,还可以安装附加的通讯模块,以支持其他通信协议。由于s7-1200为新推出的紧凑型控制器,产品更新速度非常快,目前s7-1200可以通过扩展多八个io信号模块来支持更多的数字量和模拟量输入输出。数字量信号模块,包括数字量输入模块、数字量输出模块和数字量输入输出模块,模拟量信号模块,包括模拟量输入模块、模拟量输出模块和模拟量输入输出模块。

信号模块

   西门子s7-1200信号板有八种类型,可扩展数字量输入输出和模拟量输出。s7-1200支持多三个通信模块,实现点到点的串行通信。目前s7-1200提供的串行通信模块有rs232模块和rs485模块。



西门子总代理商,西门子PLC模块代理商,西门子中国授权代理商

展开全文

我们其他产品
我们的新闻
优质商家推荐 拨打电话