现有一块只有rs232口的仪表,数据格式为16进制,使用SBCM01通讯板组态rs232接口与仪表通讯,使用自由口通讯,编程按照使用手册来的,1s时钟脉冲接上升沿触发,可是运行时会断在上升沿那里,右边的XMT一直是灰色的,,监视SM4.6时也发现发送器一直空闲.....但是仪表可以和电脑正常通信和交换数据,很苦恼会不会是硬件问题..电脑系统是win8.1,编程软件为V2.4
问题补充:
之前工作电脑不在身边没法写的详细,现在详细补充一下,第一个回答的例程和介绍我都看了,端口一端口0的区别以及他们的特殊寄存器的区别我也是清楚的。
现在的问题就是
1.当我监视程序状态时程序活动时上升沿右边的程序都是灰色的,是发送时间太短以至于肉眼看不到程序通电过程还是程序逻辑有误。
2.如果1里是前一种情况,我在监视寄存器smb4.6时发现端口1发送器一直为空闲,会不会是硬件连接的问题?
最佳答案
S7-200SMART集成有RS485的通信端口(端口0),扩展通信版SB CM01的可组态为RS232或RS485接口(端口1)。SB CM01扩展的端口COM1涉及的寄存器是SMB130、SMB186、SMB187、SMB188、SMB189,SMW190、SMW192、SMB194。都不同于使用集成端口0(SMB30、SMB86等)。
RS232口的仪表,你使用XMT写指令(发送指令),是单纯的写入参数数据,还是为了读取数据而发送的命令?如果是后者,这需要你在程序中使用接收指令RCV来监听接收数据。而这一点电脑端的串口调试助手是自动完成的,默认监听接收串口上的信号。
建议学习:S7-200 SMART CPU集成的RS485 端口(端口 0 )XMT 发送指令
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/freeport/xmt.htm
自由口通信详细介绍
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/019.html
针对不从问题:
1、上升沿指令,仅在检测到上升沿后的一个扫描周期内输出能流为1.这个周期很短,因此程序监控中发送指令是灰色的。它与通信花费的时间无关。
2、完成一次通信任务需要多个扫描周期。若在完成一次通信与启动下一次通信的时间间隔很短(你采用1HZ信号不断发送),编程软件监测不到SM4.6的变化为1也很正常。
3、你可以通过示波器观测通信线,或者用万用表观察是否有电压跳变。若Tx/B端子有跳变,则通信连接是正常的,应该是软件编程设置的问题。
4、自由口接受发送不能同时,如果一直没接收到数据会一直在接受状态等待,如果要发送,需要手动结束接受状态。
提问者对于答案的评价:
我发现了原来是接收等待的问题,我前几次串口测试时都是先运行plc再打开串口开关,所以因此只发送了一次(还没收到),有办法在不管是否可以接收的情况下持续发送么
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc288660.html