远辰 2026-5-30 16:24:20 | 显示全部楼层 | 阅读模式

『7x24小时有问必答』
   S7 通讯是西门子 S7 系列 PLC 的专有应用层协议(S7comm),核心用于 PLC 间、PLC 与 HMI / 上位机的数据交互,默认 TCP 端口102,支持MPI/PROFIBUS/ 以太网(PROFINET) 多链路,是西门子自动化的核心通信机制。
   以S7-300和200Smart的单边通信为例,同网段以太网连接,IP互通,关闭防火墙。博图软件端设置。
   一、被读写从动端PLC设置
1:设备属性,保护→取消勾选,(仅本地访问)
2:安全→连接机制→勾选允许来自远程对象的GET/PUT通信访问
3:如果是读写DB块,取消优化块访问,。
如果是写入200Smart的话用设置向导生成个程序块在OB1调用。
被读端的话准备好数据就可以了
二、主动读写PLC端设置
1:新建FC块,数据块,通信指令找到GET/PUT指令。
拉出来需要到的指令,比如PUT,向远端写入数据,拉取到FC。
点击指令上蓝色衬衫图标,设置连接参数。按实际地址属性设置。200smart伙伴只需设置以太网和IP地址。
接下来我们看一下指令引脚代表什么意思。
S7-300:在 REQ 的上升沿发送数据。 在每一个 REQ 上升沿,都会使用参数 ID、ADDR_1 和 SD_1 的值。 作业结束之后,可以为参数 ID、ADDR_1 和 SD_1 赋予新值。
远程伙伴将所需数据保存在该数据提供的地址之中,并返回一个执行应答。请确保由参数 ADDR_i 和 SD_i 定义的区域在数量、长度和数据类型等方面都匹配。
如果没有出现错误,下一次调用时会用状态参数 DONE =“1”来指示这一点。上一作业已经结束之后,才可以再次激活写入过程。
远程 CPU 则可以处于 RUN 模式或 STOP 模式。如果写入数据时访问出错,或如果执行检查出错,则会通过 ERROR 和 STATUS 输出错误和警告。
所以我们的填写如下:
REQ:用一个脉冲上升沿触发,可以用内部时钟存储器。我这里用自己写的脉冲。西门子系统和时钟存储器的使用博图STEP7
ID:寻址参数,创建连接的ID;
ADDR_1:用于写入数据区域的指针,建立数据块存储区域,定义好多少字节即可。
SD_1用于发送的数据,BOOL类型。填需要发送的数据段第一个地址位。
后面错误信息输出这些填好对应数据类型的地址即可,主要作用是查看指令状态。按上表填。
三、读取GET也同理,主要填写ADDR_1待读取数据,RD_1读取数据存储在本地的寄存器地址。
那么我们的数据写入到200smart哪个位置存储器了呢!数据已对应写入200smart的V区寄存器,可以强制博图这边,然后在200Smart处监控是否有对应变化。
四、S7-1200和1500这些的S7通讯设置会更加简单,以太网同一网段硬件层面连通。按照上面设置一样可以实现两台PLC的通讯,如果有通讯报警需要,还可以用其中一个位做心跳包,确保通讯的实时不断开,断开即报警。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码