quote:以下是引用BABU在2011-01-20 15:17:08的发言:
我回来了,项目终于做完了,可以回家过年了,:)。
自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。
先感谢一下西门子论坛和热线,没少骚扰他们。
在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎着上吧!
网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。
首先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。
买回来后自己动手焊线,一个人费了九牛二虎之力,焊的那个惨样就不用说了,还好有壳可以包装一下。
焊好了,实验一下效果吧,不知到怎么做了,打电话。
热线工程师告诉我找个串口调试工具,连接到pc机上测试。
在串口调试工具上发一串数,在200上收,ok!高兴坏了,没白忙活。
硬件上应该没问题了,接下来开始做程序了。
先得理解仪表的协议,弄清了仪表先要收到请求数据的命令,然后根据命令做出响应。
同样,先用串口调试工具和仪表连接进行通信测试,还算聪明吧,:)!
然后开始在200里编写收发程序,开始时整个思路都是乱的,无从下手。就把200手册上的例子程序整个抄上,在cpu224的两个接口间进行通信实验。
经过不停的实验,终于一点一点地理解了控制字节、控制参数的含义,怎么设置接收结束条件,怎么使用中断、怎么控制接收和发送等等。
ok,开始真正地与仪表通信了。
发请求命令,收数据,可收到的数据是ASCII码,得进行数据转换。
根据大侠们的提醒,经过实验知道了怎么将ASCII码转换为实际的工程数据。
到此基本结束了,虽然说着好像也没什么,但只有我最了解其中的痛苦,不停地实验,不停地修改阿!
后面在实际运行中又遇到了有时通信中端的问题,将双绞线的屏蔽接到地上后暂时还没出现问题。
总结一下,个人认为作自由口通信需要做好以下几方面工作:
1、最主要的是多动手,光看资料是没有用的,只有自己亲自去动手实验一下才能发现问题和帮助理解。
2、做实验是找个串口调试工具(我用的是sscom32)是必须的,可以帮助你测试你的通信线,调试你的程序,尽量不要直接与设备进行通信,通信不上不好分析原因。
3、我认为200手册上的例子程序非常好,基本的处理方法和编程方法都涉及到了,可以根据你的需要做修改,当然首先要充分地理解他。
4、遇到不太容易理解的,或有问题的,多和别人交流一下,从中可以得到不同的思路。
提前给西门子和坛子里的专家们拜年了!