1. 与数控系统的交互
1) 官方推荐的是OPCUA通讯,购买相应的OPCUA授权包,结合帮助文档,理论上可以获取所有的机床和驱动参数,看官方说明现在也开辟了一些地址用来写,这样监测和控制都比较方便。
2) 通过HMI二次开发如3GL,通过Qt编程,获取所有所需的机床和驱动参数。然后将数据写入数据库(或PLC),上位机通过数据库访问。我个人数据库使用的不熟练,临时先用PLC过渡的。
2. 与PLC的交互
该方法只能获取PLC内的数据,如DB块,M、I、Q区等。想要获取机床和驱动参数,可以用NCVAR selec 做桥梁,将相应的NC和DRIVE参数转换成DB块儿,通过FB2/FB3分别读写。
1) OPC通讯依然可以使用,由于直接与PLC通讯,S7-300本身支持OPC通讯,不用授权,具体的客户端编程资料比较丰富,目前我并没有实际的去编,只是通过西门子SCOUT监视过数据,故不多介绍。(SIMATIC NET要装,同时控制台和硬件组态都得配置)
2) 通过WINAC,这是我之前较常用的方式,通过软PLC(相当于S7-400)和S7-300通讯,这样转换成熟悉的西门子方式。然后通过WINAC ODK开发包提供的SMX共享区域,实现与上位机开发软件之间的交互,该方法简单易行。缺点是WINAC已停止更新,定格在2010版,只能运行32位的WINDOWS版本。且一样需安装SIMATIC NET,成本并不低。
3) 通过常用的通讯数据库,尤其是针对S7协议的。如早期的西家提供的Prodave, 开源的S7Net,
S7NetPlus,Libnodave,Sharp7,Snap7,它们且都是经过实际项目考验过的,因此究竟在项目中选择哪款还是根据实际情况而定。如果要考虑跨平台那肯定要选择Snap7,如果使用C#那么Sharp7和S7NetPlus肯定更加理想。
http://zd19672.cn.b2b168.com