java怎么拦截某个对象
344
2022-11-08
基于S7-300400 CPU集成PN接口的Modbus TCP在TIA Portal的使用入门教程
Modbus TCP通讯概述
通讯所使用的以太网参考模型
Modbus TCP传输过程中使用了TCP/IP以太网参考模型的5层:
第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容。
第二层:数据链路层,格式化信号到源/目硬件址数据帧。
第三层:网络层,实现带有32位IP 地址报文包。
第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度。
第五层:应用层,Modbus协议报文。
Modbus TCP数据帧
Modbus TCP使用的端口号
(1) PLC作为Modbus服务器时,按缺省协议使用Port 502 通信端口,在Modus客户端程序中设置任意通信端口,
(2) PLC作为Modbus客户端时,无须设置本机端口号;如要指定客户端端口号,为避免与其他通讯协议的冲突一般建议2000开始可以使用。
S7-300/400集成PN口Modbus TCP通讯概述
本文适用于带有集成 PN 接口的 SIMATIC S7-300、S7-400 CPU 和 IM 151-8 PN/DP CPU 的软件产品。相关指令允许在带有集成 PN 接口的 SIMATIC CPU 和支持 Modbus TCP 协议的设备之间进行通信。
根据客户端——服务器原理进行数据传输。传输过程中,可以将 SIMATIC S7 用作客户端,也可以用作服务器。
从TIA Portal V14 SP1开始软件中增加了Modbus TCP V2.0版本的指令,可用于SIMATIC S7-300、S7-400 CPU 和 IM 151-8 PN/DP CPU与支持ModbusTCP的通信伙伴进行通信.
配置 PN CPU作为Modbus TCP Server与通信伙
伴建立通讯
创建一个新项目:
然后选择“添加新设备”——>“控制器”,选择正确的CPU型号
在“设备视图”中,选择CPU以太网口,设置IP 地址.
(1)OB1调用Modbus TCP指令
在项目的OB1组织块中调用Modbus TCP指令
部分管脚说明:
id:连接ID 必须与参数DB中相关的id 参数相同。
以纯文本格式输入DB编号“DBxy”。
REG_KEY_DB:具有可用于授权的注册表项的数据块。
在“S7 为服务器”模式下将 RECV_TIMEOUT 设置为 < 20 ms,则使用默认值 1.2 s。RECV_TIMEOUT 监视 TCP 流的运行系统。不考虑各个客户端请求之间的中断。
CONN_TIMEOUT:监视调用建立或终止所用的时间。如果在组态的监视时间内无法成功建立或终止连接,则会在输出 STATUS 中显示相应的错误消息。最小值为 100 ms。
在“S7 为服务器”操作模式下,如果将 CONN_TIMEOUT 设置为 < 100 ms,则会使用默认值 5 s。
创建参数数据块:
以下为部分参数说明(其它参数信息请查看在线帮助):
id:每个PN CPU与通信伙伴之间的连接都需要一个连接ID。如果有多个通信伙伴,则每个逻辑连接会使用不同的连接ID。该连接ID 在参数数据块中包含的“连接参数块”中组态。连接ID 唯一地描述CPU与链接伙伴之间的连接,取值范围为1到4095。必须在此处输入参数块中的连接ID;该ID 在整个CPU中必须唯一。
connection_type:建立连接的连接类型通过 TCON 指令定义。CPU 决定必须要设置的值。
TCP(兼容模式):B#16#01,针对 CPU 315 或 317 <= FW V2.3 。
TCP:B#16#11,针对 CPU 315 或 317 >= FW V2.4、IM 151-8 PN/DP CPU、CPU314C、CPU319、CPU412、CPU414 和 CPU416。该信息可能因固件不同而有所不同。
active_est:该参数表示连接建立类型,主动或被动。Modbus 客户端负责建立主动连接而 Modbus 服务器负责建立被动连接。
主动连接的建立:TRUE
被动连接的建立:FALSE
local_device_id:定义所用 PN CPU 的 IE 接口。根据不同的 PN CPU 类型,需要不同的设置。
未指定的连接:B#16#0
指定的连接:B#16#4
rem_tsap_id_len:参数 rem_tsap_id 的长度和远程通信伙伴的端口号。
主动连接的建立:2
被动连接建立:0
rem_ staddr:在此字节数组中输入远程通信伙伴的 IP 地址。使用未指定的连接时,不输入 IP 地址。表示类型取决于 connection_type 参数。示例:IP 地址 192.168.0.1:
server_client:S7 是服务器=TRUE;S7 是客户端=FALSE。
data_areas:S7 存储器中有八个可以用于映射 MODBUS 地址的数据区。必须至少定义第一个数据区,其余七个数据区可选择性定义。根据作业类型,将从数据区读取数据或向其中写入数据。
一个数据块中可以映射的 Modbus 区(寄存器或位值)数目比一个消息帧可以处理的数目多。
data_type:指定该数据块中映射的 MODBUS 数据类型。如果在 data_type 中输入值 16#0,则不使用相应的区域。
db:指定映射 MODBUS 寄存器或下面定义的位值的数据块。DB 编号 0 为系统保留,不允许使用。
DB 编号:1 到 65535(W#16#0001 到 W#16#FFFF)。start / end:start 指定 DB 的数据字 0 中映射的第一个 Modbus 地址。end 参数定义最后一个 MODBUS 地址。
对于寄存器访问,带有最后一个 Modbus 地址输入的 S7 DB 中的数据字编号如下计算:DBW 编号 = (end – start) * 2 .
对于位访问,带有最后一个 Modbus 地址输入的 S7 DB 中的数据字节编号如下计算:DBB 编号 = (end – start + 7) / 8
定义的数据区不得重叠。end 参数不得小于 start。如果发生错误,指令启动将中止并提示错误。如果两个值相同,则将分配一个 Modbus 地址(1 个寄存器或 1 个位值)。
原文标题:基于S7-300400 CPU集成PN接口的Modbus TCP-W
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~