西门子S7-1500/1200PLC与卡若普机器人Modbus TCP通讯
一、功能概要
CRX8的以太网通信功能通过 1 台客户端,多可访问 5 个服务器; 通信协议支
持modbus TCP/IP 协议。
S7-1200PLC支持 modbus TCP/IP 协议既可以做服务器也可以做客户端
二、以 CRX8 做服务器,S7-1200 做客户端为例
(一)CRX8 系统做服务器设置
首先,操作权限需在管理员权限及以上。修改操作权限方法,详见《简要使用手册》;
然后点击 < 用户工艺 >--,设置以下参数。
1.服务器地址与 PLC 在同一网段。
2.端口号与 PLC 远程的端口号保持一致。
3.从站地址与 PLCID 地址保持一致。
通讯方式:选择Modus TCP/IP
激活状态:红色灯表示未激活,绿色灯表示已激活。可以点击子菜单[ 断开 / 激活 ],切换状态。激活状态后,退出一次通讯配置界面(进入其他界面即可退出通讯配置界面),激活状态将被保存。
服务器地址:输入CRP 系统(服务器)的 IP 地址,CRP 系统 IP 地址默认为
端口:输入CRP 系统(服务器)端口号。CRP 系统并没有指定端口号,客户可自行设置。服务器的端口号应避开以太网中特定协议已固定的端口号一致。
通讯超时:服务器不用此值,默认1000ms 即可。
从站站号:设定CRP 系统作为从站时候的站号,范围为 1-254。其次,点击 [ 断开/ 激活 ] 按钮,激活服务器,这样客户端才激活。 后,点击 [ 退出 ] 按钮,保存设置。保存后,关电重启,其参数和激活状态不会改变。这样服务器端就设置完成了。
特别说明:CRX8作为服务器,响应周期为 100ms,故客户端的访问周期应大于100ms,否则会通讯超时。
(二)S7-1200 做客户端设置
打开TIA 博图软件(以 TIA16 为例)创建新项目>>>项目名称>>>创建
图1
★注:1.项目名称根据实际项目自定义(图1)
待新项目创建成功后进入TIA 主界面点击 1.添加设备>>>2.选择现场同型号 PLC>>>3.选择PLC 版本(如图2:这里以S7-1212 为例)
图2
★注:3.CPU固件版本号必须在V4.1 以上(图 2)
CPU添加成功后点击 1.设备和网络,进入设备网络界面>>>2.单击 CPU 图标>>>3.属性>>>4.PROFINE接口>>>更改 IP 地址同样在设备网络界面单击2. 以太网接口图标>>>3.系统常数>>>4.硬件标识符
图4
★注:4.硬件标识符在后续通讯程序数据设置中会使用(图4)
启用时间存储器:1.设备和网络>>>2.单击CPU 图标>>>3.属性>>>4.系统和时钟存储器>>>5.启用时钟存储器字节
图5
★注:5.时钟存储器字节的地址可以根据现场需要进行修改。
进行更改建立程序,可以在MAIN 程序块内直接建通讯程序,双击 1.MAIN>>>2.选择通信>>>3.MB_CLIENT 指令块
图6
★注:3.指令块目前版本已经升级到V5.3,其他版本也可以使用(图 6)。
将1.MB_CLIENT 指令块(客户端)添加到程序内(TIA 支持直接拖动)>>>2.确定
图7
为 MB_CLIENT 指令块的 CONNECT 参数引脚建立背景数据块。
右击1.程序块>>>2.数据块>>>3.名称(可自定义)>>>4.确定
图8
在建立完成的数据块-1内建立 CONNECT 参数数据,数据类型为"TCON_IP_v4"1.数据块-1>
>>2.数据名称AAAA 和类型 TCON_IP_v4>>>展开 AAAA>>>将参数写入相应位置
图9
★注:3.InterfaceId:CPU的硬件标示符(图 9)4.ID:连接ID 小于 255,不要重叠,与服务器保持一致(图 9)5.ConnectionType:连接类型,默认16#0B(转换为十进制为 11 )(图 9)6.ActiveEstablished:是否主动建立连接(服务器“0”不主动,客户端“1”主动)(图 9)7.RemoteAddress:服务器连接的客户机IP 地址 (和服务器在同一网段)(图 9)8.RemotePort:远程的端口号,默认0(根据实际更改)(图 9)9.LocalPort:本地的端口号,默认502(根据实际更改)(图 9)以上参数设置完成以后还需要建立个数组数据块用来存放通信中的数据。
图10
在建立完成的数据块-2中建立数组 1.数据块-2>>>2.名称为fff的一维数组(案例中建立10 个数据)
图11
在MB_CLIENT 指令块中引用数据块-1 和数据块-2 中建立的变量
进入1.MAIN 程序将 3.数据块-1 中的变量引用到 MB_CLIENT 指令块中的 CONNECT 引脚,将 2.数据块-2中的变量引用到 MB_CLIENT 指令块中的 MB-DATA-PTR 引脚
图11
主程序中MB_CLIENT 指令块(客户端)编程
读写机器人Y 区域设置方法(MB_MODE:1“写”0“读”)
图12
MB_MODE:读/写模式,“1”读取数据,“0”写入数据MB_DATA_LEN:数据长度(根据现场需要可更改)MB_DATA_ADDR:MODBUS 功能码(取决于 MB_MODE ,在 TIA 手册中可以查询)读写的起始地址读取机器人X 区域设置方法(X 只能读)MB_MODE:读/写模式,“101”读取数据,“115”写入数据
MB_DATA_LEN:数据长度(根据现场需要可更改)
MB_DATA_ADDR:MODBUS 功能码(取决于 MB_MODE ,在 TIA 手册中可以查询)读写的起始地址
通信中可能出现报错
S7-1200CPU 作为 Modbus TCP 客户端与 Modbus TCP 服务器通信,当尝试访问比 Modbus TCP服务器更低端的串行子网中的设备,会有报错"无法建立连接"。这种情况下,Modbus TCP 服务器作为 Modbus RTU 协议中的网关,"MB_Unit_ID" 参数相当于Modbus RTU 协议中的从站地址。Modbus TCP 客户端直接向 Modbus TCP 服务器发送请求,ModbusTCP 服务器通过识别 "MB_UNIT_ID" 参数,将请求转发到从站设备。如图12 设置即可
点击1.“MB_CLIENT_DB”>>>2. Static>>>3. MB_Unit_ID(默认起始值 16#FF,等于十
进制255),将 MB_Unit_ID 设置成与连接 ID 一致即可。
注:和其它的设备Modbus TCP通讯大致差不多。