我用CP340通过RS485串口线和PC上的串口调试助手通讯。硬件如图1,当PC发送数据到PLC时,调用P_RCV,程序如图2,程序里的DB_NO应该是我接收的数据的存放的数据块的地址。帮助文档如图3里说,DB_NO是接收数据块号,依CPU而定,不能为零。这一点我不是很明白,这个接收数据块怎么定义?它不能是背景数据块吧?那它应该是全局DB还是用户数据类型定义?求阿鸣大师,逸兴壮思飞大师,各位前辈指导下。
问题补充:
感谢阿鸣大师的回答,我按照大师说的先创建全局DB块,里面设置Array[0..100] of byte。在PC串口调试助手上只发送“0102”,仍然是接收不到,调试助手发送时,CP340的RxD灯无任何反应。P_SEND发送却可以,发送时CP340的TxD灯闪烁。链接的资料我看了,没发现我的问题在哪里,这是什么问题?这里提问不能方便交流,我的邮箱cugoflee@163.com。哪位前辈能指导下。
图片说明:
最佳答案
1、调用P_RCV,程序时需要一个本FB程序块的背景数据块,还需要一个存通讯数据的全局DB,例如DB1。这个DB1必须在编写P_RCV,程序之前就建立,并且要定义为满足你的通讯所需的长度。
2、见如何创建DB:
http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=960445&b_id=4&num=7&s_id=23
3、下述资料中有实例:
<CP340/341/440/441通讯及编程>下载:
http://www.ad.siemens.com.cn/download/docMessage.aspx?ID=1293&loginID=&srno=&sendtime=
4、但是为什么PC发送不到PLC?
可能是PLC接受程序编制问题。看看:
串行通信模块常见问题集:
http://blog.sina.com.cn/s/blog_669692a60101h4a4.html
提问者对于答案的评价:
感谢阿鸣大师。我的问题还是没解决,PLC能发送到PC,不能从PC接收。能用邮件向阿鸣大师请教下吗?
最佳答案作者回复:
1、注意:发送块由沿触发使能,接收块有电平使能。见下述资料中问题25:
串行通信模块常见问题集:
http://blog.sina.com.cn/s/blog_669692a60101h4a4.html
2、参考下述资料中的编程:
《串口通讯模块的信息与使用(2004.03.30) 》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0006
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc157500.html