本期带来的是FX3U和FX5U之间的通讯,由FX3U做主站通过485BD板,用RS2指令来跟FX5U进行MODBUS RTU通讯。 这里我们需要用到轮询,不管如何,485通讯必须用轮询来交互数据。因为它是半双工通信,不能同时收发数据,同一时间内要么发,要么收。否则通信就会报错。另外,通信需要时间,因为主站发过去报文后,需要等待一定时间接收来自从站的数据,然后主站才能发送下一条报文。这也为轮询创造了转移条件。 好了,接下来我们讲解下如何做: 首先第一步就是各自设置好通讯参数: 先设置FX5U,因为它做从站,好设置,因此就先设置它: 然后设置FX3U的。由于我们使用的是RS2指令,且是485BD板,因此我们需要通过通道1的D8400来设置通讯格式,如下所示:特别提醒:通讯格式的设定一定要参照“用户手册通讯篇”来,因为RS和MODBUS通信,这两者的通信格式虽有大同,但也有小异。它们三者不大相同,这个要注意,否则是无法通信的。 RS2指令必须是16位模式,因此M8161必须保持OFF状态 然后就是写程序了,我这里的程序交互流程是这样的:FX3U去控制FX5U中M0的状态,然后使FX5U中的D0进行累加。同时,FX3U来实时获取FX5U中的D0的值,并且实时写入到FX5U的D100中。程序如下: FX5U中的程序 这是大概的框架,具体写法需要根据实际情况和设备来写。 程序要点:
|
|