Sharp7提供了一个很方便的连接S7-300PLC的方法,目前只在CPU319-3PN/DP上测试,并且已知在PLC-Sim上没法连上……
示波器这一块用的方法是微软在2014年发布的DynamicDataDisplay v0.3.0。
直接贴源码图了……源码测试用的是Dint,所以所有的字节长度都是和Dint对应。
测试IP是192.168.0.2 rack是0,slot是2,直接调用这个ConnectTo,返回值为0就是已经连接上。
连接上之后要读取对应区域的数据,调用对应函数之前要先定义一个字节数组,该数组的长度与读取的目标数据的类型有关。这个方法的返回值就是定义的字节数组。
得到返回的字节数组后,需要再调用另一个方法将字节数组转化为需要的数据。
这样就可以得到PLC内部的数据啦
示波器的部分采用的大部分是DynamicDataDisplay示例代码,其中不同的是在500ms定时器接通的时候要再建立一次同PLC的连接,然后读取一次数据,随后用DynamicDataDisplay的方法画出波形。
测试波形
目标PLC的IP:192.168.0.2 RACK:0 SLOT:2
目标地址DB12.DBD6
变量表强制DB12.DBD6的数据,波形会发生改变。
另:这个方式与PLC通讯,占用的是PLC的PG communication资源,每打开一次波形监控就会占用一次,在整个程序退出时释放。