基于libnodave西门子S71200系PLC数据的读写
开发工具平台
Win7开发环境;所用到的软件如下:
VS2013,使用的MFC;
libnodave-0.8.5: 网上开源的西门子PLC读写库;
TIA V14 sp1, 西门子PLC程序编写软件, 本测试基本不用编写PLC程序;
Nettoplcsim-S7o-v-1-2-1-0; 仿真测试用, 连接S7-PLCSIM V14;
程序编写步骤
- 使用VS2103新建一个MFC的工程, 对话框的还是单文档,多文档的随便;
- 网上下载libnodave-0.8.5, 找到下图几个文件添加到1)中的工程中;
- 编译工程: 会出现问题, 根据提示修改, 如果是预编译的问题, 可以把上图中的.c文件设置不使用预编译;
- 工程中添加要读写变量的信息: S71200只能读取DB块中的数据;
读写测试
读取测试, 成功读取到的S71200中的数据类型:
-
Byte,char;
-
int , uint , word;
-
DINT,DWORD, Real
-
string
读取函数均为daveReadBytes, 读取不同的数据类型注意第四个参数, 读取长度;
写入测试, 写入函数daveWriteBytes, 写入不同的数据类型除了要注意第四个参数写入长度, 还要注意第五个参数要写入数据的字节顺序与PLC中不同, 写入前要进行处理;否则,如int直接写入1,PLC中监测到时256,所以要调整字节顺序再写入.
搭建仿真测试环境:详细步骤不再说, 我测试的是cpu1215, 使用Nettoplcsim连接S7-PLCSIM V14; PLC中只需创建要读写的DB块, 添加需要测试的变量即可.