| 作者 | 主题 |
|---|---|
|
合 奇侠 经验值:6044 发帖数:3917 精华帖:20 |
楼主
主题:应用探讨-SIMATIC S7-300/400串口通信
串口通信在通信领域里是最“古老”的通信方式,且到目前为止也是应用最广泛的通信方式之一,西门子的串口通信的模版与其他厂商的仪表或PLC的通信应用案例也比较多,
在此召集大家畅谈自己在使用过程中的心得和经验。以便相互学习,互通有无。 此次集中探讨将持续至11月13日,其中有突出表现的网友将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖金币;根据交流情况,会酌情赠送小礼品。 交流结束后将专门整理最有价值内容,供广大网友分享参考。 预祝大家交流愉快,收获丰富! |
|
姑苏城外 侠圣 经验值:3598 发帖数:1466 精华帖:19 |
11楼
主题:回复:应用探讨-SIMATIC S7-300/400串口通信
N年前搞个读卡器轮询,CP341(485)带多个国产的IC卡读写器
用PC机通过RS232/RS485读写一点问题没有,但是用CP341时,当把读写命令发送到读写器后,CP341发送接收灯闪烁,但是接收数据区无数据,用PC机运行串口监视软件,发现IC卡数据已传送,打热线问CP341发送接收的转换时间,告诉我不需要时间,晕.自己写了测试软件,转换时间最长有3.xMs,接下来就简单了,在IC卡读写器在加了10Ms延时,一切OK. 管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅。
与人规矩,不与人巧!
|
|
liwenqun 奇侠 经验值:6852 发帖数:5293 精华帖:25 |
20楼
主题:回复:应用探讨-SIMATIC S7-300/400串口通信quote:以下是引用全球任我行在2009-10-13 13:16:05的发言: 在使用串口与上位机通信时,上位机监控是VB写的,监控里面会出现乱码。 而且乱码是出现在发送的MD区,一开始查不到原因,后来把MD换成四个MB分开发送就好了。现在还未明白其中的原因。 还有一种情况,一开始启动PLC,上位机监控里面通信接收数据显示会有乱码,但是监控下发PLC一组数据之后,PLC上报的数据就是正确无乱码的数据了。 虽然对于设备的运行没有影响,但是总觉得没有搞清楚其中的原因,感觉怪怪的,麻烦高手们帮我分析一下 1、所谓乱码就是因为Vb中的数据高低位和PLC里面的高低位不对应造成的 2、这可能是你的程序逻辑问题,如果PLC启动就无目的的上传数据是不正确的 管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅。
怎么论坛改成这样了??
|
|
only 游民 经验值:105 发帖数:2 精华帖:1 |
31楼
主题:回复:应用探讨-SIMATIC S7-300/400串口通信
我做过用MODBUS协议和CP341分别做主站和从站的程序,几点经验和大家分享一下:
1.通讯参数必须一致(包括站地址,波特率,数据位,校验位); 2.程序基本可以按照西门子提供的例程作为参考,但要做多个站时要自己写轮询的程序; 3.一定要了解清楚第三方产品的通讯要求,分配的地址,值得一提的是有很多仪表说明书上的分配地址和仪表实际的地址不一样,这就有可能造成通讯不上,建议做这个程序的时候直接和仪表的研发部门联系,要求他们技术支持; 4.市场上RS232转RS485的工具用在仪表有的可以但用在西门子上面都不行,所以做串口调试的时候要注意这点。 说的不好的地方欢迎大家提出来。 管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅。 |
|
eaglesky 侠圣 经验值:2989 发帖数:660 精华帖:22 |
49楼
主题:回复:应用探讨-SIMATIC S7-300/400串口通信
串口通讯,弄清楚数据格式,余下的就是轮询了。可以用程序块的标识位判断,也可以用组态参数的时间设定。前者也需要同时增加延时判断,已应对多块仪表中通讯部正常的情况。
通过CP340/341发送数据按照要求的数据格式即可,而接收的数据通常都是需要做处理才能用。 个人觉得半双工方式比全双工程序上更容易处理,发、收对应,全双工的话就需要对接收的数据加以判断处理了。 还有CP340/341的数据缓冲区的使用了,实际应用中遇到过一种情况,接收到的数据次序发生混乱,原因是数据存储在缓冲区,没有被一一对应的取过来。 还有就是,实际使用中,CP340在数据处理能力上,确实不如CP341,两者之间恐怕不止差一个狗的问题。 总的来说,要编写一套完整、细致的串口通讯程序,除了主程序之外,附属的各种情况要考虑很多东西。 管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅。
没有个性的签名就别签了。
|
|
H.L 侠圣 经验值:2881 发帖数:1766 精华帖:9 |
62楼
主题:回复:应用探讨-SIMATIC S7-300/400串口通信
如果通讯时经常发生误码,我会:
1.接好屏蔽地线 2.降低通讯速率。 如果经过以上处理还会偶尔出现误码,我会: 1.对接收到的数据加以严格判断,包括起始字符,结束字符,数据信息的长度,中间的重要数据信息的位置及是否正确都会判断,不正确则丢弃该信息。 发送数据的间隔时间会改长一些。 2.程序的收、发会做些优化。 如果通讯发生阻塞,我会: 1.先判断是哪一方出现了无应答。 2.根据程序设置些必要的标志位来判断引起故障的地方,可能发生在接收发送轮询上,缓冲区,数据处理上,或异常字符导致,程序漏洞(收发不能进行正常转换,一直在发送或一直在接收)。 3.硬件问题,长时间工作后死机。 管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅。 |