两台西门子S7-300plc的MPI通讯问题分析
- 发布时间:
- 来源:机电之家
问:我有一个改造项目新系统的313C plc需要从老系统上用MpI通讯读取一个模拟量和16个数字量的数据,现在问题是用定义全局数据通讯还是在新系统plc中用sfc67和sfc68通讯,是不是编程通讯比全局数据通讯速度快更稳定?请高手指点。(还要问一句如果用编程通讯的话怎么把定义好的全局数据给删除掉)如果不用全局数据的话,用编程,两个plc在组态里用不用连?是不是只用设置一下地址就行了吧?答:全局数据通信是PLC之间进行的不需要编程通过MPI接口在CPU间循环地交换少量数据,当过程映像被刷新时,在循环扫描检测点上进行数据交换;而无组态的连接的MPI通信(编程通信)通过调用SFC67和SFC68来实现,MPI无组态连接就是MPI通信时,不需要组态,只要编写通信程序即可实现通信,PLC之间可以采用双边编程通信和单边编程通信方式,你这里应该是采用单边编程通信方式,因为CPU313C需要从老系统上用MpI通讯读取一个模拟量和16个数字量的数据,只要在CPU313C上进行编程就可以实现数据交换,编程通信要比全局数据传输的数据量要大,速度更快;你首先必须把两个PLC之间的MPI端口连接起来,设定主站CPU313C的MPI通信参数(波特率187.5kbit/s)和主站的MP地址如“3”,不能与老的PLC的MPI地址重复,把两个站的波特率设定一样,各自下载到PLC中;因为你只想老系统上用MpI通讯读取一个模拟量和16个数字量的数据,在CPU313C中单边编程,在读取数据区只要指定对方的PLC的MPI地址和数据区就可以了。X_PUT(SFC68)为发送数据的指令,通过此指令将数据写入不在同一个本地S7站中的通信伙伴,其中DEST_ID为对方的MPI地址(这里指你的老系统PLC的MPI地址)和VAR_ADDR为对方的数据区,SD为本地数据区,必须保证SD参数定义的数据长度和数据类型与通信伙伴上VAR_ADDR一致;X_GET(SFC67)为接收数据的指令,可以从本地站S7站以外的通信伙伴(这里指老系统上PLC站)中读取数据,其中参数DEST_ID和VAR_ADDR分别指对方的MPI地址和对方的数据区,RD为本机的数据区必须保证RD参数定义的接收区(CPU313C)至少和由VAR_ADDR参数定义的要读取的区域一样大,而且类型必须相匹配。如果不想要全局数据通信,只要在硬件组态界面中选择菜单Options(选项)/Define bbbbbb Data“(定义全局数据)界面中,打开全局变量发送和接收组态,断口连接,执行保存编译,下载到PLC就可以了。——此文章转载于互联网,文中观点与本网站无关,如有侵权请联系删除
关于阿里巴巴国际站
阿里巴巴国际站成立于1999年,是阿里巴巴集团的第一个业务板块,现已成为全球数字化出海服务平台。阿里巴巴国际站累计服务200余个国家和地区的超过2600万活跃企业买家,近三年支付买家的复合增长超过100%。
阿里巴巴国际站致力于让所有的中小企业成为跨国公司。打造更公平、绿色、可持续的贸易规则。提供更简单、可信、有保障的生意平台。它始终以创新技术为内核,高效链接生意全链路,用数字能力普惠广大外贸中小企业,加速全球贸易行业数字化转型升级。
未来三年,阿里巴巴国际站将赋能全球3000万活跃中小企业,实现全面无纸化出口、货通全球。