刚开始学习PLC,遇到问题了,希望大家能帮帮忙。
用电脑(作为上位机)通过RS232口与PLC(作为下位机)连接,上位机的串口通信程序我会编写,但是下位机的程序是怎么编写的?在网上搜到手都酸了,都找不到下位机的通信程序编写方法。
我曾经这样分析:上位机通信程序发送的连接命令到达PLC时,PLC自己会产生一个中断,然后这个中断会调用我们事先编写的中断处理子程序运行,这样呢,我们就可以在这个中断处理子程序中做我们想做的事了。
不知我这样的分析对不,如果正确,那么如何定义这个中断处理子程序,又如何让PLC在网络连接命令到来时产生的中断 去调用我们定义的中断处理子程序?如果不正确,那么PLC是怎样响应上位机通信程序发送来的连接命令的?PLC的具体的通信程序如何编写?
没用过PLC 单片机知道有中断引脚和中断号的 不知道PLC有没有
PC->串口指令->PLC。
PLC就是单片机,处理串口数据,会分析该数据的格式是否符合预定义规范(命令、配置、设置、数据等),如果符合就执行,不符合要么是报错,要么是忽略。
PLC都是厂家已经写好的,一般除非你做PLC,不然你是没法改的。
你写PC端软件,就必须了解该PLC的通讯协议,这样才能保证正确通讯。
嗯,也就是说,PLC端无需编写程序就可以与上位机通信了,具体的就是:上位机要通过用户自己编写的通信程序来向PLC发出连接或者读写命令字符串,而PLC接收到这个命令字符串后就会自己执行厂家已经写好的通信程序来响应上位机了?另外还希望知道如何才能更改这个PLC的通信程序,也就是自己写一个(比如用梯形图编写)来代替厂家事先已经写好的那个通信程序?
嗯,也就是说,PLC端无需编写程序就可以与上位机通信了,具体的就是:上位机要通过用户自己编写的通信程序来向PLC发出连接或者读写命令字符串,而PLC接收到这个命令字符串后就会自己执行厂家已经写好的通信程序来响应上位机了?另外还希望知道如何才能更改这个PLC的通信程序,也就是自己写一个(比如用梯形图编写)来代替厂家事先已经写好的那个通信程序?
引用: 引用 2 楼 shuiyan 的回复:
PC->串口指令->PLC。
PLC就是单片机,处理串口数据,会分析该数据的格式是否符合预定义规范(命令、配置、设置、数据等),如果符合就执行,不符合要么是报错,要么是忽略。
PLC都是厂家已经写好的,一般除非你做PLC,不然你是没法改的。
你写PC端软件,就必须了解该PLC的通讯协议,这样才能保证正确通讯。
也不全是,看你的plc支持什么通讯协议,如果你利用plc自带的协议,则不用写程序,如果用自己定义的通讯协议则需要写程序,比如上位机需要MODBUS通讯,而你的plc又没有,则需要根据plc的串口功能开发modbus。不过根据lz的描述应该不用写程序,简单的说上位机直接寻址你plc的某一段寄存器就可以了,通讯的细节应该对你是透明的。
谢谢codesnail,好像有点思路,但可能是我接触太少,不太懂,很希望能进一步详细的理解如何“根据plc的串口功能开发modbus"?能否给比较具体的过程或者推荐一些针对这个的好书等,谢谢!
在eeworld里搜索 MSP430无线通信 关键字,有关于MSP430单片机的下位机程序。希望能帮到你!