首先简单了解一下AG_SEND/AG_LSEND,AG_RECV/AG_LRECV(AG_SSEND我没用过,不做解释)

首先AG_SEND****和TSEND不一样,这是一个硬限制。

AG_SEND用于CP组态,而TSEND/TRCV适用于局域网内通讯(同网段)本次主要介绍CP组态的方式。

AG_SEND/AG_LSEND/AG_SSEND用于发送消息,一般发送指针,如下图:

上图中,ACT检测到上升沿后,会调用AG_SEND发送SEND管脚所指定的区域起,LEN管脚58个BYTE。

发送完成后DONE管脚会置1一个扫描周期,ERROR管脚与STATUS管脚显示块的状态信息。

其中ID与LADDR来源于组态中的地址,如下图:

AG_RECV\AG_LRECV\AG_SRECV用于接收数据,用法如下:

我们发现AG_LRECV没有ACT管脚,所以,只要EN使能来,此块每个扫描周期都会接收数据。

接收完成后LEN管脚会持续显示一个扫描周期的长度。

接收的数据将按顺序放到RECV管脚所指向的区域。

ID与LADDR管脚来源于组态。

一个表格解释功能:

以下图片介绍了在S7-300/400中CP通讯块的可用性。(帮助中说S7400无法使用AG_RECV,不知为何我却使用正常。)

以下图片介绍了在S7-300/400中CP通讯块所能通讯的字节数

好了,大概能了解,我们先说怎么用!

此系列块共包含三个基本块。AG_CNTEX、AG_SEND、AG_RECV。

根据不同情况可以延伸出AG_LSEND\AG_LRECV\AG_SSEND\AG_SRECV……

先说AG_CNTEX:

用于进行连接诊断的指令

下面是官方给的一个指令,这里我最多用到的就是重连,重连的方式就是

ACT置位,CMD管脚写6,断开连接后,等待一秒钟写7,然后CMD写0,复位ACT

更多指令请查看编程器帮助。

我的设备信息如下:

Ps1:关于字节发送长度的问题。

通过表格可以看到AG_SEND在S7-400中可以发送最长240个BYTE。所以,超过240个BYTE时我们就要使用AG_LSEND,在使用的过程中,当使用AG_LSEND发送数据时,字节长度小于241时无法发送成功,后来交流可能是因为CP版本问题,所以将所有的字节长度最小长度为241BYTE,可以正常发送。

上图中,我通过上升沿制定了LEN管脚,发送的区域为2900BYTE,只取LEN来发送时,必须设置大于241BYTE及以上。

由于我发送的字节数长且多变,其中长字节为周期性发送,所以需要通过时钟或者计数器将发送时机间隔开来(AG_SSEND可以大大提高发送效率,但是我正好是1453个字节,白搭了。)

或者,使用DONE信号来复位,如果报文触发条件多,写起来也会比较复杂,暂时没有想到更好的写法,只能通过联锁来保证数据不冲突。

如果不间隔,可能会导致重发或者粘包,会很麻烦,我发送的字节长度在2000BYTE左右,仍然建议时间间隔在4秒左右。

比如下图

Ps2:关于接收的问题。

官方帮助文档说S7400无法在TCP连接上使用AG_RECV接收数据,不知为何我可以正常使用的,但以后尽量避开使用,有一个特别难受的问题我也是踩坑得出。

譬如:使用AG_RECV接收的数据接收到一个DB区域,譬如我接收到

P#DB2050.DBX3540.0 BYTE 58

如果我收到的数据是60位,怎么办?当然这得提前做好,不能够接收区域比字节长度短吧!

如果我收到的数据是1位呢,那你整个数据区域全都是这一位。

如果是两位,会自然填充,直到填满。所以,有两种解决方案:

一、接收到数据立刻转移并清空该区域数据。

二、保证数据长度一致。

AG_SEND/AG_RECV系列指令使用至此算是完成。更多坑仍需摸索。

如有错误欢迎指正。

[西门子/博途]关于FC5/50,FC6/60的一些经验坑相关推荐

  1. tiav15安装重启_西门子博途TIA Portal V15.1安装无限重启和.net3.5SP1错误处理

    这里给大家分享一下西门子博途TIA Portal V15.1的安装,其中很多朋友在安装过程中会遇到很多问题无法解决.这里一一说明. 一.安装电脑要求 下面是我的电脑 电脑要求 硬件要求:TIA软件主要 ...

  2. 西门子博途1200码垛机、立体仓库程序(带注释),程序应用到 变频器、触摸屏、步进电机、工业机器人、视觉相机。

    西门子博途1200码垛机.立体仓库程序(带注释),程序应用到 变频器.触摸屏.步进电机.工业机器人.视觉相机.

  3. 西门子博途V15.0安装更新包UPD4时遇到版本不一致的提示问题及处理对策

    虽然西门子博途软件TIA portal V16已经出来了,但是个人还是在用V15.0,毕竟做维护的,不像搞设计的大佬们要求那么高,V15完全够用了,因为在18年11月份,V15.0也出来了第四次更新包 ...

  4. 西门子博途软件TIA PORTAL不同版本安装在一台电脑上的个人总结

    关于西门子博途软件TIA PORTAL不同版本同时安装在同一台电脑上的个人总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 个人开始使用博途软件 ...

  5. TIA西门子博途V17安装教程及注意事项

    TIA西门子博途V17安装教程及注意事项 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 前提条件: TIA Portal V17需要.Net Fr ...

  6. 西门子博途1500双驱同步,伺服同步运行程序,3轴码垛博途程序,scl项目,同步轴走PN工艺对象

    西门子博途1500双驱同步,伺服同步运行程序,3轴码垛博途程序,scl项目,同步轴走PN工艺对象,其他两轴走Epos控制,PN通讯,程序90%采用scl编程,大量成熟功能块重复调用,结构化编程,结构框 ...

  7. Factory IO仿真工厂与西门子博途软件联动仿真

    Factory IO仿真工厂与西门子博途软件联动仿真!id=642931666086&

  8. 西门子博途v16系统要求_【技成周报30期】西门子系列常见问题答疑汇总

    更多精彩,请点击上方蓝字关注我们!西门子S7-200SMART PLC问题▲▲▲ 问:STEP 7-MicroWIN SMART编程软件当中符号表地址I0.0下面红色波浪线是什么原因? 答:说明该地址 ...

  9. 面向新手的西门子博途软件常用功能介绍

    大家都知道西门子博图软件功能强大,但是它的操作界面对于新手也是比较复杂的,菜单栏.工具栏.右键菜单.对话框等比较多.刚刚开始使用这款软件的新手,基本上都会遇到各种各样操作上的问题,很多人遇到一个红色波 ...

最新文章

  1. 如何选择分布式系统(区块链)协议?
  2. 影院平台搭建 - (2)FLV发布系统的简单搭建
  3. 视觉SLAM十四讲学习笔记-第一讲
  4. 全球首家!比亚迪宣布停止燃油汽车整车生产
  5. Python windows serial
  6. matlab2c使用c++实现matlab函数系列教程-wilkinson函数
  7. python 字节字符串_Python字符串转换为字节,字节转换为字符串
  8. 【SQL基础】SQL增删改查基本语句
  9. 倾向值匹配法的概述和应用+倾向值分析:统计方法与应用
  10. 开发者如何了解技术前沿? 再也不用看微信公众号的软文了!
  11. 干货 | SQL 进阶技巧
  12. 计算机安全模式还原系统,Win10电脑安全模式怎么还原系统?Win10电脑安全模式还原系统方法步骤...
  13. linux系统weblogic安装及简单使用
  14. 零基础新手小白学编程必会的100个代码
  15. 小岳岳吐槽房子隔音差:买房小心隔墙有耳
  16. 关于配置文件 @project.version@ 在多模块环境下获取不到本模块值的问题解决方案
  17. 随笔 数据库敏感数据加密存储
  18. 读取jar中MF文件以及pom.xml中的版本号
  19. 低碳数字城市和区块链:城市-社区-家庭
  20. 【音视频】srs直播平台搭建

热门文章

  1. 程序员的机器学习入门笔记(一):基本概念介绍
  2. 恶搞版西游记,99%的人看完后当场含笑而死
  3. 平淡生活:过年的一点感慨
  4. 单按键自锁开关电路设计
  5. 5.MyBatis源码解析-MyBatis面试题--阿呆中二
  6. 用matlab画OCC控制电路,基于单周期(OCC)控制的CCM PFC
  7. 小孔成像总结_干货 | 初中物理解题技巧+方法总结,非常实用,初二初三都要看!...
  8. Java 吃货联盟系统(变量、数组)
  9. 香港金融中心谁与争锋
  10. 如何在坐地铁的时候与别人拉开差距?