mpi实现通信要用mpiMPI通讯区都有一个GDID号,第一位代表全局数据的循环数,每个循环数表示和一个CPU通信。
S7-300CPU通信,两个发送与接收是一个循环,S7-400CPU之间的3个发送与接收是一个循环。支持循环数与CPU有关,S7-300最多为4个,即最多能和4个CPU通信。S7-400CPU414-2DP最多为8个,S7-400CPU416-2DP最多为16个。
和上位机进行MPI/DP通信,上位机要么安装了CP系列的通信网卡,然后使用普通的通信线,要么使用专用的适配器,包括PC适配器(一端接PLC,一端接PC电脑的RS232),和USB适配器。
6个MPI调用接口:
1.mpi init()初始化MPI执行环境,建立多个MPI进程之间的联系,为后续通信做准备。
2.mpi finalize 结束MPI执行环境。
3.mpi comm rank用来标识各个MPI进程的,给出调用该函数的进程的进程号,返回整型的错误值。两个参数:MPI_Comm类型的通信域,标识参与计算的MPI进程组; &rank返回调用进程中的标识号。
4.mpi comm size用来标识相应进程组中有多少个进程。
5.mpi send(buf,counter,datatype,dest,tag,comm): buf:发送缓冲区的起始地址,可以是数组或结构指针;count:非负整数,发送的数据个数;datatype:发送数据的数据类型;dest:整型,目的的进程号;tag:整型,消息标志;comm:MPI进程组所在的通信域。
专用通信协议 你不用学。比如我是研发人机介面的。我的触摸屏一定要能和三菱通信,这就要了解三菱的专协议,在触摸屏的OS中写上对应的通信程序。在VB中用专门和三菱通信的控件,它将专用协议写好了,我们不用管什么格式不格式的。
你说的通信中“始”和“未”(STX和SUM)在三菱通信中可以是事先设定好的,只要你事先设定好了,通信时可以不写这两个。
无协议通信 没有什么格式不格式的,它也叫自由通信协议。
如我和台达的变频器通信我只要遵守台达的通信协议就可以了。
和松下的通信遵守松下的协议就可以了。
PLC本身没有什么格式不格式的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)