PLC可用RS232、RS485/RS422和编程口通信,它们都属于异步串口通信。平时数据线上的电平是“1”(空闲位=1),一旦电平由1跳变到0时(开始位=0)接收器便知道一个字节的接收开始了。这里边的开始位/停止位/数据位/要不要校验/波特率都要事先约定好(设置D8120的低8位)。
首先编程口只是一种特殊的通信,用于编程下载或人机界面的连接,。它是RS-422接口,但跟RS-422BD并不完全是同一通信模式。因为它不能用于RS指令的无协议通信。除了上述功能外,它还可以利用PLC编程口专用协议和PC通信,不过只能由PC发送读/写命令后才由PLC乖乖的做出相应回答,有关编程口协议可查阅编程口通信手册(注意不是PLC通信,是PLC编程口通信)。它虽然属于专用协议通信模式,但不需要在D8120的高8位(通信模式设置)设置就能通信,所以我说这是一种特殊的通信。
485/422BD、232BD与PC电脑通信
(当用485/422BD时,务必将D8120的B11、B10设置成1,1)
一. 专用协议(D8120的B14位=1时)(B15位是格式1和4的选择)
1. PC命令模式(非下位请求通信):
这跟编程口—PC通信一样,都是PC发一条专用格式的命令到PLC,然后PLC根据命令要求作出相应的回答。(有关命令格式可查通信手册的计算机链接章节)。
2. 下位机请求通信:(PLC主动发送数据到PC,未经PC事先命令的哦)
只要向D8127(发送数据的起始地址)和D8128(发送数据的个数)写入数据(MOV指令)时,就相当于向PC发送一次数据。注意发送的只是字元件D,不能发送位元件。显然数据不属于协议格式,但还是要当协议通信格式设置。
二. 无协议(RS指令)
例: RS D0 K6 D50 K10
K6和K10指的是发/收的字节数(如果的16位模式(M8161=0),每一个字元件数据=2个字节,请注意)。
没有协议的数据当然没有意义了,所以发送数据时,一定是根据对方的专用协议发送,接收的数据当然也是根据对方设备的专用格式来读懂它的。说它是无协议是因为它不需要别人给它命令来指手划脚,它只想发送就发送,有数据就接收,但自由是有限度的,就是数据必须是根据对方设备的协议格式来发送和读懂的。
无协议通信一般用在PLC与处设之间的通信连接,根据外设的协议格式进行数据发/收。而协议通信大多用于PC链接或其它网络通信如1:N等。以后我们慢慢来讲述。
11-05-09 10:50