大概情况说一下:我应用WINCC 6.0做的系统,主要功能是作为数据的中转,通过和上位的连接,读取数据库(ORACLE)的表,获取数据后下发给PLC。
问题:在运行一段时间后,发现我和PLC的变量读取速度变的很慢,主要是写变量。最慢时达到半个多小时才将数据下发给PLC。
可能原因:1.全局脚本写的太多,于是精简脚本有原来的10多个到4个。正常运行两天后又恢复到原来慢的状况。
2.由于我的PC上使用的是ORACLE的客户端,而且还有上位管理系统,也要大量读取数据库的表,可能是同时读取表导致我读取数据慢,但后来尝试在往外部变量下发的同时也往内部变量写,发现内部变量写的很快,但外部变量却一时更改不了。
3.PROFIBUS网络问题,硬件DP头问题都排除。
最后,将波特率由187.5改为1.5M,问题得到解决。虽然问题得到解决,但总觉得这不是问题的根本。
后来又用上面的方法去更改另一个同样的项目,发现问题没有解决,于是改走MPI协议,问题得到解决。
尽管两个项目都正常运行了,但是一个是改波特率,一个是改走MPI,至于问题的根本原因还是不太明晰。
希望大家帮我分析一下!谢谢!