图片:
客户是个西门子1500的PLC,想导出几个指定的数据,存入一个固定的exel模板里面,然后打印出来。
图片里一行就是一个数据,应用办法就是先添加一个空行,双击修改里面的属性,保存设置就能读数据出来了。然后指定excel的行列坐标号,哦模板是文件夹里面有个模板的excel
这里面用到了几个技术点:
1.以太网通讯pingIP的方式 实现断线重连。
2.字典和序列化的搭配使用,存储配置信息。
3.数据的采集一开始一行是一个线程,多线程写的,但是测试的时候发现,如果行数多了,连接个数也会变多,会拖垮PLC变的很慢
后来我想起来西门子 S7连接是有个数限制的。后来就改成了主线程遍历的方式,这样就是一个连接了,但是这样如果你数据多了,整体采集就
会变慢,这个我写的不好,但是好在我的数据都少啊就10几个,赖得改了
4.地址的格式要按照我照片里这种格式写,我没有对数据地址格式进行判断,也是懒的写了哈哈,因为配置的人肯定懂地址格式。哦还有
数据类型我没有写全啊,我就写了我需要的一些,你们可以看源代码里面。
5.调用了一个office的dll 可以导出数据到excel
6.dgv的增删,这里我是用了一个datatable,在这里面弄好之后在放进dgv里面去,后来觉得有点麻烦应该直接在dgv里面操作。
最后,理论上这个软件可以跟300 400 1200 1500以太网通讯,1200 1500记得吧CPU属性里面,连接机制有个putget那个勾选上。