四时宝库

程序员的知识宝库

为什么SCL源编译成功后,在‘一致性检查’ 编译中仍然报错

1问题描述

一个PLC站的FB,DB,FC,UDT是通过多个SCL源生成的,如下:

其中共享DB中用到了UDT类型,在编译时可选择先编译UDT的SCL源,再编译共享DB的SCL源,编译成功。

而在‘一致性检查‘的编译中报措:

错误信息:DB中数据类型为UDT的时间戳与逻辑块接口的时间戳不一致。

2 问题原因

在‘一致性检查‘的全部编译过程中,会将所有的源程序再编译一次,而编译的顺序取决于源文件名称:

造成先编译生成DB,后编译生成UDT,产生时间戳问题。

3解决办法

为解决此问题,可按照需要修改SCL源文件的名称使UDT的SCL源文件排在DB的SCL源文件的前面。

‘一致性检查’窗口的编译顺序发生变化:

全部编译结果:无错误

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接