最近用到plc200做一个设备自动控制,由于控制算法比较复杂,数据量大,因此打算用.net做客户端,自己编写通讯程序。
参考了网上的例子,读操作的编码指令都是一样的,但是写操作指令,网上确有好几个不同的版本,而且网上有些是错误的,我通过串口监听程序来跟踪实际指令的。
以下为3种版本:
1、http://blog.csdn.net/chensongbin0/archive/2010/03/12/5375010.aspx
的写指令(一个字节) 前21位是
68 21 21 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10
我根据他的表格编写,发现提示的成功的,但实际上,数据没有写进去;
2、http://fftq2006.blog.163.com/blog/static/11799082520104142450472/
的写指令(一个字节) 前21位是
68 20 20 68 2 0 7C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10
这个测试是成功的,
3,我自己用com口监听网上的一个例子,发现是这样的
的写指令(一个字节) 前21位是
68 21 21 68 2 0 7C 32 1 0 0 0 0 0 E 0 6 5 1 12 A 10
这个我也测试,是ok的,都是写vb100的例子,居然有不同格式,而且有的是38个字节,有点是39个字节,目前采用第三个,那位兄弟出来说说3者区别啊。
还有,有没有需要c#通讯的兄弟,我可提供源码。曾经反编译过c#的通讯实例,居然有6000多行,大量goto语句,大量重复代码,我的水平还是比他高一些的,起码不到1/10代码搞定,很少嵌套if之类,因为学过重构和设计模式 :)。