最近在做一个使用西门子S7-1200控制伺服电机运动的一个小设备,这个设备需要作为一个子站挂载在 S7-300主站下。在把设备寄到厂家以后,对方表示通讯不上,后经过现场查看发现对方对S7-300不太熟悉,使用PUT/GET指令的S7通讯协议的时候配置的乱七八糟。为了方便现场工程师做通讯调试,我们想了两种办法可以让初学者就能配置好两方的通讯,并且把这个方法用于实践以后取得了非常好的调试效果,现把这个方法分享给大家。

S7-1200与S7-300可采用S7通讯的方式进行数据的传输,配置其实也是很方便:

一、生成GSD文件挂载S7-300的方式

1.创建S7-1200程序,双击设备组态

2.设置好IP和设备名称

3.在防护和安全-连接机制里面将允许来自远程对象PUT/GET通讯访问勾选上

4.操作模式上勾选上IO设备,并在下面的传输区域中将PLC1200被通讯的存储区进行选择。本案例中选择的是IB2-IB6,QB2-QB6,也就是说S7-1200会将自己的这些区域的数值传送给主站S7-300。注:此种通讯方式只能通讯输入输出存储区,不能传输DB存储区,所以这种方式不太适合我们。

5.先编译一下整个程序,注意一定要进行编译否则不能导出GSD文件。编译之后向下拉,找到导出GSD文件的按钮(本文没有进行编译,所以按钮时灰色的,如果编译了就可以点击了)

6.好了,现在把生产的GSD文件拖拽到S7-300的硬件组态下吧,只要拖拽过去就可以通讯上了。

二、提前编好S7-1200的通讯程序

第一种方式固然很方便,但是局限性很大,就是不能创建DB通讯区域。然后我们用了另外一种方法。我们的工程师属于对S7-300不是很熟悉,对S7-1200非常熟的人,所以我们把所有工作都做在了1200上。

1.首先创建S7-1200项目,配置好IP、勾选允许来自远程对象PUT/GET通讯访问

2.创建S7-1200需要传送的共享数据块,将需要传送的数据填写进去

上图一定要选择全局DB,其中OUT数据块里的数据是需要传送给S7-300的,INPUT数据块里的数据是接收S7-300的数据

4.将两个数据块的优化块访问给勾掉(就是不要勾选,否则是符号寻址)

选中数据块-右击-属性,选择常规选项卡里的属性,将优化的块访问给勾掉

5.把需要通讯的数据分别填入各自数据块中

其中a1-a8是接收S7-300的数据,b1-b8是传送给S7-300的数据

5.打开程序块

6.选择通信-S7通信文件夹下的GET/PUT指令,并拖拽至程序块中

7.程序注释:

  • GET指令是从S7-300中读8个bool变量存储到S7-1200中
  • REQ是什么时候执行这条语句,上升沿有效,所以此处需要配置好一个脉冲信号
  • ID是自己输入的通讯连接ID号,每个通讯是唯一标识的,别和其它的ID重了就可以,但是要注意改完之后就不要在改了
  • ADDR_1是指对方存储数据的地址指针和位数,对于本案例来说就是S7-300中需要被S7-1200读取的数据地址,本例的S7-300存放的数据地址是DB15,总共通讯8个bool型变量
  • RD_1是指通讯过来的数据存放在本地哪个数据块中,之前建立的DB2(INPUT)数据块就是为了存储读取的数据的,所以本例是DB2,总共通讯8个bool
  • 如果你通讯的DB块比较多,还可以在ADDR2和RD2中建立相应的第二个通讯存储区,依次类推
  • PUT指令是从S7-1200中写8个bool变量存储到S7-300中
  • REQ是什么时候执行这条语句,上升沿有效,所以此处需要配置好一个脉冲信号
  • ID是自己输入的通讯连接ID号,每个通讯是唯一标识的,别和其它的ID重了就可以,但是要注意改完之后就不要在改了
  • ADDR_1是指对方存储数据的地址指针和位数,对于本案例来说就是S7-300中需要存储S7-1200写入数据的地址,本例的S7-300存放的数据地址是DB16,总共通讯8个bool型变量
  • SD_1是指S7-1200把哪些数传入到S7-300中,之前建立的DB1(OUT)数据块就是为了存储写入数据的,所以本例是DB1,总共通讯8个bool
  • 如果你通讯的DB块比较多,还可以在ADDR2和SD2中建立相应的第二个通讯存储区,依次类推

建立完成之后的地址对应关系 是:S7-1200将DB1里的8个数据传到S7-300中DB16的8个数据中;S7-1200读取S7-300中DB15的8个数据并存储到DB2中。

8.打开S7-1200的网络视图,点击连接,选择S7连接,配置一个S7连接。

注:为了确保通用性,即本案例不针对某一个具体的PLC做通讯。而是拿到现场以后和任何一个PLC都能匹配通讯上,所以本例只配置S7连接即可,不无需配置连接伙伴(如果配置连接伙伴就是针对某一个具体的PLC了)

9.进入程序块,选中GET指令,选择属性选项卡-组态-连接参数

注意这里的连接参数什么时候显示绿色的对勾什么时候表示配置成功了。

参数解释如下:

  • 左边是本地PLC即1200PLC的参数设置,注意那个ID号就是你之前填写的。
  • 右边是配置你需要和谁通讯的PLC。因为本案例想做成通用性,所以伙伴选择未知
  • IP地址输入你需要和S7-1200进行通讯的地址(即S7-300的IP地址),此IP地址是需要到现场由工程师根据现场通讯PLC进行设置的

同样的步骤配置PUT指令程序块的通讯信息

S7-1200的配置就到此为止了。

配置S7-300

拿到这个通讯程序后下载到S7-1200中,然后把设备带到现场,在现场的S7-300中进行IP配置和数据块建立即可

1.根据现场S7-300的IP地址配置S7-1200的通讯IP地址。(此处配置一致即可,可以先定S7-1200中通讯程序的伙伴IP,然后更改S7-300中的IP地址;或者现场S7-300的IP地址已经配置完成不能修改了,你可以去S7-1200中将伙伴IP修改一下。只要二者相对应即可)

2.建立通讯数据块,用来和S7-1200进行通讯。因为在S7-1200中已经定义了DB号码,所以在S7-300中创建的数据块号码必须和S7-1200中配置的S7通讯号码一致。

3.在数据块中建立和S7-1200一模一样的数据,用来传送和读取S7-1200中的数据。

好了,是不是感觉在S7-300中的编程工作已经减轻了不少,只要求IP和DB块及DB块中的数据和通讯程序一致即可,无需做其他编程操作。如果需要S7-1200中的工作少,你可以将PUT/GET指令写在S7-300中。

祝大家五一玩儿的开心。

adprw指令通讯案例_S7-1200与S7-300傻瓜式通讯相关推荐

  1. adprw指令通讯案例_超实用,非常典型的Modbus通讯项目案例,三分钟学会

    本文主要介绍两部分:1.简单介绍Modbus通讯相关知识:2.通讯案例详解: 一.Modbus通讯介绍 1.通讯概述 Modbus具有两种串行传输模式:分别为ASCII和RTU.Modbus是一种单主 ...

  2. 台达PLC与台达VFD变频器modbus 通讯案例 完成PLC与变频器的modbus RTU通讯,实现触摸屏上控制变频器启停,设置频率

    台达PLC与台达VFD变频器modbus 通讯案例 配件:台达DVP 14es的PLC,台达VFD M变频器. 昆仑通态触摸屏和威纶通触摸屏 功能:完成PLC与变频器的modbus RTU通讯,实现触 ...

  3. adprw指令通讯案例_【智】S7200PLC与台达变频器MODBUS简单通讯案例详解

    大家好,我是微控小智,今天又跟大家见面了.学习不是一蹴而就,需要坚持,做技术亦是如此,厚积才能博发. 今天小智再次分享有关S7-200PLC与台达VFD_M变频器Modbus通讯案例程序,这次是用非常 ...

  4. 三菱FX3U与4台三菱变频器专用指令通讯案例

    三菱FX3U与4台三菱变频器专用指令通讯案例 功能:采用三菱FX3U PLC与4台三菱变频器E740进行通讯 配件:三菱FX3U的PLC,加FX3U 485BD板. 三菱E740变频器. 昆仑通态触摸 ...

  5. 三菱FX3U与4台三菱变频器专用指令通讯案例 功能:采用三菱FX3U PLC与4台三菱变频器E740进行通讯

    三菱FX3U与4台三菱变频器专用指令通讯案例 功能:采用三菱FX3U PLC与4台三菱变频器E740进行通讯. 配件:三菱FX3U的PLC,加FX3U 485BD板. 三菱E740变频器. 昆仑通态触 ...

  6. 西门子P L C 1200与smart的S 7通讯

    s7通讯是西门子与西门子之间特有的通讯方式 准备:PLC 网线 第一步.组态CPU 2.勾选时钟 3.允许访问通讯 4.点开网络视图 5.添加新连接6.直接点击添加7.写上地址 8.记下这个数,等下编 ...

  7. wincc上位机与1200组态步骤_西门子1200与WINCC上位机如何通讯?-工业支持中心-西门子中国...

    回答者: 大宝朱林森 - 高级顾问&nbsp&nbsp第14级 2020-03-04 10:49:18 我就提醒一点,装wincc的电脑必须安装step7或者SIMATIC NET软件 ...

  8. 西门子1200与台达MS300变频器通讯程序

    西门子1200与台达MS300变频器通讯程序 器件:西门子1200 PLC,台达ms300变频器,西门子KTP700 Basic Pn触摸屏,昆仑通态触摸屏(带以太网),中途可以加路由器 控制方式:触 ...

  9. Day06_动态组件_插槽_自定义指令_tabbar案例

    Day06_动态组件_插槽_自定义指令_tabbar案例 文章目录 Day06_动态组件_插槽_自定义指令_tabbar案例 知识点自测 今日学习目标 1. 组件进阶 1.0 组件进阶 - 动态组件 ...

最新文章

  1. 高数_解二元方程,复数怎么求出来的?(复数问题)
  2. SSH安装后提示sshd_server account 用户
  3. [洛谷P1268]树的重量
  4. 【STM32】SPI 实验代码详解
  5. svn教程----权限管理
  6. 【机器学习基础】通俗讲解集成学习算法!
  7. jpeg6 安装问题!
  8. HTML5常用标签及特殊字符表
  9. Qt4_读取和写入二进制数据
  10. handler 和 intent用法
  11. 揭开源码的神秘面纱,让源码从此无处藏身
  12. 桌面小工具天气连接不到服务器,win10系统桌面天气小工具提示无法连接服务的具体办法...
  13. 软件工程之信息系统集成
  14. Luzj's ZTE Win版 终于开发完成
  15. 电脑眼病和干眼症的相关知识
  16. [Maven实战-许晓斌]-[第二章]-2.6 NetBeans上面安装Maven插件
  17. CSPNet: A New Backbone that can Enhance Learning Capability of CNN
  18. 猫和计算机连接网络,宽带猫和路由器怎样连接 宽带猫和路由器连接方法【教程】...
  19. java读取war3模型_GitHub - wucao/jw3gparser: Java Warcraft Ⅲ Replay Parser(Java解析《魔兽争霸3》游戏录像工具)...
  20. 计算机编程好难啊,揭秘|为什么我们觉得编程好难?

热门文章

  1. 015_Redis创建集群
  2. php中 可替代curl,laravel-PHP-为什么使用Guzzle代替cURL?
  3. Java配置dbeaver_ubuntu我的工具安装 eclipse、dbeaver、jdk、kdesvn、
  4. java 加法表编程_java编程——数据的加法
  5. java的object_Java中的Object类详细介绍
  6. matlab检测图片马赛克,python 检测图片是否有马赛克
  7. vue实现div多选全选功能_怎样为你的 Vue.js 单页应用提速
  8. android 屏保_Mac视频屏保随心换!
  9. 长春理工有计算机专业吗,长春理工大学(专业学位)计算机技术考研难吗
  10. 计算机技师操作考试题库含答案,计算机三级试题与答案