1、先确认51单片机系统的接口种类与数量,如是否有RS-485\RS-232\CAN等接口;
2、如果有上述接口,建议使用RS-485接口进行通讯,因为RS-485口可以实现一主多从,可以接多个51单片机系统;
3、硬件使用西门子PLC的RS-485口,通讯协议选用最通用的MODBUS-RTU协议。采用西门子PLC的专用MODBUS指令,西门子PLC作为主站,51单片机系统作为从站。
4、51系统的MODBUS从站程序编制完毕,西门子PLC的主站MODBUS通讯程序编制完毕,且485硬件连接正常后,即可正常通讯。
希望能帮到你
象你这个单片机机急用中断来接收不用去判断ri,把51的中断打开他自动收,然后你去读取sbuf里面的内容,这时sbuf里面的就是你plc传给你单片机的,如果是06h,单片机继续发送你的通讯数据就行了,51每发送一个字节数据,就去检测plc发回的是不是06就行了,原理就是这样,
至于plc那边,你和51相互配合就行了,每从51接收一个你就发送一个06h
最后再建议一下:在我看来你这样的一个通信协议,不是很严密,万一中途数据丢包,没有个很好的机制来处理,造成通信不准确
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)