数据转存问题互动

1、S7-200 smart PLC 根据不同的触发条件不定期的保存一些数据记录,并将数据记录保存在一个固定的数据存储区内。新的记录总是保存在第一条。当记录总条数超过100条时,最早记录的数据将被覆盖。

2、当I0.0 为ON 时S7-200 smart PLC 将保存的数据传送到上位机 S7-300 PLC,当I0.0 为OFF 时S7-200 smart PLC 停止传送。传送过程中如果有新的记录产生,同时记录新的记录。

3、 S7-300 PLC 将接收到的数据保存在一个固定的区域内。

问题补充:
关键问题:s7-200PLC内的数据如何传送到s7-300PLC内

1、通讯方式采用 profibus dp ,数据传输过程中通讯可能中断再自恢复。

2、s7-200 PLC 记录数据的时间点没有规律,且时断时续的记录。

3、s7-200 PLC 向 s7-300PLC 传送数据的时间点也没有规律,且时断时续的传送。

4、如何保证s7-200 PLC 记录的数据不丢失、向s7-300 传送的数据也不丢失 。 

5、s7-200 PLC 记录的数据已经占满设置的最大空间时,最早记录的数据还没有被传送到s7-300PLC,则最早记录的数据丢失。

最佳答案

1、可以用间接寻址的方式进行填充,在填充前,循环移位,把数据往下移一个单位,最大循环100次,然后把新的数据写在第一个数据里面,使用FOR-NEXT指令
2、200往300发送数据的时候,可以一次全部发送啊,就是把这100个数据全部发送,如果不能的话,那就再做一个数据位置的存储,把数据位置和数据一起发到300PLC里面,300PLC根据收到的位置,再进行存储,每次发送完一个数据,存储位置自动加1变化(或其他,根据自己需求)
3、通讯问题,可以和300的PLC做个心跳测试,每次能收到300PLC心跳信号的时候,发送一次数据,收不到就不发送。如果只是记录新数据,可以在300PLC里面也做个移位的,200PLC里面发送一个1,300PLC上升沿循环移位一次
4、保证数据正确的话,一般情况下,只要通讯正常,就是能收到心跳信号,数据就错不了,怕发生闹鬼现象的话,再做个300PLC往回发数据,200进行验证,感觉没必要
5、最早的记录什么意思?200的超过100的记录吗?200的已经都没有了,也就不会发送了,采用上面循环发送数据的方式,可以根据200PLC里面的数据,定时的复写,也能保证程序不错
200PLC 方式数据丢失,一是设置好系统块里面的保持范围,二是使用的时候注意地址使用,不要出现地址冲突现象。
具体指令 间接寻址等资料参考一下:
西门子 S7-200 SMART PLUS V1.8 技术参考
https://support.industry.siemens.com/cs/cn/zh/view/76488152
S7-200 SMART 系统手册 V2.2
http://www.ad.siemens.com.cn/download/docMessage.aspx?Id=6780

提问者对于答案的评价:
在这里首先感谢谢谢各位的帮助。
1、我已经完成200PLC、300PLC侧数据保存
2、难点是,200PLC往300PLC发送数据的时候采用16 Byte buffer I/O 模式,不能一次全部将数据发送完;在发送的过程中200PLC还会记录新的数据。
3、就好像有一个水池,一根管子断断续续的往里面加水,另外一根管子断断续续的往外抽水,如何保证水不会溢出、不丢失(其实还要保证先记录的数据先传送到300PLC)。
4、要是能有点实例将不胜感激,谢谢。13811240383@126.com

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月31日 下午10:19
下一篇 2017年5月31日 下午10:19

相关推荐