在MODBUS通信中由于PAC3200手册中只给出了64位电能值的寄存器地址,所以WinCC无法通过03XX和04XX直接读取和处理电能值。现在这个问题可以解决了,就是在64位寄存器地址上加上偏移。例如,64位的费率1下正向有功电能Active energy import tariff 1(D)寄存器地址是801。32位电能值的对应地址是2801(参考表1)。 操作步骤如下:1) 在变量管理中添加Modbus TCP/IP驱动 2) 建立通讯连接 CPU-type: Premium, Micro • Server: PAC4200 的IP地址 • Port: Modbus 端口号 502 • Remote slave address: 1 • Swap words in 32-bit values: 选择Swap words in 32-bit value 3) 新建变量 4)定义变量属性 图
表1
5)在Graphics Designer画面编辑器中创建带变量的画面 6)添加I/O域 7)启动WinCC运行系统 |
1 导入外部源文件 图1 导入外部源文件窗口 2 打开编译时报错
图2源文件编译报错窗口
3:如何根据报错信息来调整软件配置和编程环境来完成正确编译 1 syntax error(语法错误) 该条目说明此语句中有无法识别的指令,我们要知道,西门子**技术资源网站上提供下载的应用实例很多是来自德国,而STEP 7 在德语环境下使用的指令是英语环境下无法识别的。因此我们需要做以下调整: • 首先在STEP 7主界面的“选项”下拉菜单中选择“用户自定义”,如图3所示; 图3选项设置
• 然后在弹出的对话框语言标签选项卡中将助记符由英语改成德语,如图4所示。 图4用户自定义窗口
2 ……TIME_TCK does not match…… 该条目说明此语句中有未加载的系统功能(SFC64: TIME_TCK),我们通过技术支持提供下载的FAQ或操作指南都会提供相关的使用信息,一定不要遗漏。在这个案例中我们需要做以下调整: • 在STEP 7标准库中加载系统功能 SFC64(TIME_TCK),如图5所示,需要说明的是加载完的系统功能 SFC64可以从程序中段中删除,不需要在循环程序中调用和定义参数。 图5库函数调用
通过以上两个步骤的操作后再对源文件进行编译就不会报错了。
|