一台S7-300和多台S7-200MPI无组态通讯怎么编写300侧程序

使用SFC67和SFC68,多台S7-200,谢谢

问题补充:
谢谢,如果我有8台S7-200作为从站,我就要在OB1中添加16个网段,调用8次SFC67和SFC68,是这样吗?

最佳答案

通过调用SFC67/68实现无组态的MPI的通信,适合S7-400PLC、S7-300PLC、S7-200PLC之间的通信。
以S7-200与S7-300之间的无组态MPI通信为例来说明,一般S7-200与S7-300之间只能采用单边无组态通信方式,即仅在S7-300
在X_PUT(SFC68)发送数据的指令,通过SFC68将数据写入不在同一个本地S7站的通信伙伴。在通信伙伴上没有相应的SFC68,必须确保由SD(本机的数据区,数据类型为ANY,在发送CPU上,既S7-300PLC上)定义的发送区和由VAR_ADDR参数(对方的数据区,数据类型为ANY,在通信伙伴上,这里是指S7-200)定义的接收区长度相同,并且数据类型相匹配。
一般若对S7-200的V区读写,则在S7-300中定义S7-200的V区,须用DB1代替,用指针间接寻址方式进行。如你想读出S7-200中VB0以后的30个字节并且放到S7-300的MB20以后的30个字节中,需要调用系统功能SFC67,在参数VAR_ADDRESS(对方数据区,指S7-200)中设定S7-200的地址区为:P#DB1.DBX0.0 BYTE 30, 在参数RD(本机的数据区,指S7-300)中设定S7-300的地址区为P#MB20.0 BYTE30.
同样如果将S7-300的MB40以后的70个字节写入7-200中VB31以后的70个字节中,需要调用系统功能SFC68,在参数VAR_ADDR中定义S7-200的地址区:P#DB1.DBX31.0 BYTE 70, 在参数SD中设定S7-300D的地址区为P#MB40.0 BYTE 70;
一般S7-300/400可以同时作为客户机和服务器,而S7-200只能作为服务器。如果想实现S7-300/400与两个S7-200站通信,在通过REQ=1调用相应SFC67/68之后,激活读写作业。此后可以继续调用SFC67/68, 两套指令的REQ和CONT可以一直为1,直到参数BUSY=0 指示接收到应答为止

具体可以看下面的资料
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1360&loginID=&srno=&sendtime=

提问者对于答案的评价:
谢谢

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc261412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • s7-200 是德州仪器生产的吗?

    据说s7-200是德州仪器的,不知西门子与其是啥关系。 最佳答案 进口的S7-200是在美国制造的。是不是在TI的工厂里制造没有考察过。不管是哪个生产商制造的,最终挂的是“SIEM…

    SIMATIC S7-200 2021年7月5日
  • S7-200自由口编程用Modbus协议和无线电台同上位INTOUCH串口通讯

    CPU224XP自由口编程,调用西门子的modbus从站库,初使化通信协议如下: LD     SM0.1 C…

    SIMATIC S7-200 2020年11月5日
  • VB与200

    怎样才能用VB与200PLC相互交换数据,控制PLC程序运行,并反馈运行状态。有没有这方面的详细资料。 最佳答案 1、如果只是点对点的通讯,不需OPC.。参见下述文档:VB与西门子…

    SIMATIC S7-200 2017年7月26日
  • s7-200子程序调用问题程序

    在子程序中用局布变量(符号)编写了一个启保停的电机控制子程序,在主程序中多次调用后,只要一台电机启动,其它没有给启动信号的电机也有启动输出。这是为什么?请各位教师指教,谢谢&nbs…

    2020年10月31日
  • 西门子200PLC的程序怎么上传?忘记了,不好意思。

    西门子200PLC的程序怎么上传?忘记了,不好意思。 最佳答案 1、软件左侧工具栏中选择下部的设置PG/PC接口,参考附图012、进入设置界面,根据编程电缆和使用的连接协议设置几个…

    2021年7月5日
  • s7 200 子程序调用

    当有一个子程序被调用时,系统会保存当前的逻辑堆栈,置栈顶值为1,堆栈的其他值为零,把控制交给被调用的子程序。当子程序完成之后,恢复逻辑堆栈,把控制权交还给调用程序。在上述这段华中“…

    SIMATIC S7-200 2020年10月31日
  • 两台s7-200通信

    我想两台s7-200共用一个字节如:mb0不知道行不行?怎样编程?谢谢!!!! 最佳答案 通过PPI最简单,发个例子给你看看。 提问者对于答案的评价:实例

    SIMATIC S7-200 2021年7月4日
  • 两台S7 200通信问题

    我有两台S7 200需要互相通信,还需用WINCC对它们进行监控。网上看到有不少方案,其中有一个建议两台PLC用profibus总线和网络连接器连通,用PC机通过PPI电…

    SIMATIC S7-200 2021年7月5日
  • A/B相正交计数器和带有增/减计数脉冲的计数器有什么区别?

    A/B相正交计数器和带有增/减计数脉冲的计数器有什么区别?在程序里如何区分A相脉冲、B相脉冲,怎么实现增计数脉冲,减计数脉冲? 最佳答案 1.A/B相正交计数器是专门针对旋转编码器…

    SIMATIC S7-200 2021年7月5日
  • s7-200与两种协议变频器通讯

    用224xp与西门子420系列变频器和台达变频器通讯,在网上看到西门子变频器可以用USS协议库,台达变频器可以用modbus或自由协议,两台变频器通讯线是用PLC上同一个485口吗…

    SIMATIC S7-200 2021年7月4日