粉丝338获赞2073

我们在这里简单演示一下拍子当中的服务 socket 通信,这有个服务器代码,就有个客户端代码,假设我们先运行客户端代码会怎么样呢?我们来看这里, 这里呢会提示一个包错,你看目标计算机拒绝了,为什么呢?因为我服务器服务没有开启呀,那我没有开启,没有人监听,那肯定就会拒绝呀,是吧?那所以说我们要先开服务器右键运行服务器, 继续完了之后我们来看啊,这里就显示服务器端已经启动了,实际上呢,也就是啊,我们在这里绑定了端口,启动了之后在这里打印一个这样语句,那这个时候我们再来 使用客服端去连接这个服务器,那连接实际上呢,就是这样的,你看我们这个地址跟这里设置呢是有一个对 硬的,那连接完了之后呢,我们就会尝试把这个 hello serve 这个语句发送过去,然后我们看一下 serve 服务器里面有什么呢?你看他是不是已经说收到了这个信息啊?那这个呢,也是在这个代码里面的, 我们先看效果,收到信息之后是不是?你看我们在这里收到信息之后,我们会把它打印出来,对吧?同样的我们也可以告诉客户端说我收到了,对不对?所以说你看这就是 response 嘛,回应,把回应的这个信息全部用 这个函数发送过去,发送过去之后,客户端你要就是这个效果,对吧?那客户端相当于就是我说我收到了这个响应, 对你的响应的值就是你刚刚给我发过来的,就大概是一个这样的流程呀,当然就会比较绕,只要你懂了就可以。我们可以大概去看这个代码,因为我们主要是先知道这个效果,那么代码是可以共享。

现在我们有了传输层的端口,网络层的 ip 地址,数据炼入层的麦克,就已经可以定位到全世界范围内运行的任意一款基于网络通信的应用程序了。接下来我们就可以用单买来写应用层了。应用层的协议比较多,比如 httphtpsftp 等等,或者我们也可以制定一些意义 自定义协议。前面我们也说了,其实就是规定协议头部的长度和内容,只要我们把应用成的数据准备好,然后再按照每一层的协议要求进行封包,最后发出去就可以了。 但问题是如果这些过程都自己来做的话,这就非常复杂了。前面我们只是大概了解了一下每一层的协议以及他们的工作方式,但如果我们真的要自己用蛋白来实现这个过程, 每一层怎么封包?封包的具体内容有哪些,怎么排列等等,然后封完包之后怎么通过物理层发出去,这些都要非常详细的去研究一遍。这时候就有人站出来了,他说传输成易下来,操作都很复杂且固定,你们就不用做了,我来帮你们做, 你们就只负责开发应用程序就可以了。应用程序以下的操作,我来给你们封装号,封装成一个个模块,然后你的应用程序叫发数据的时候,就调用我给你提供的结果就可以了。至于传输成怎么封装,网络成怎么封装数据,电路层怎么封装,物理成怎么发出去,我这个模块里面都给你封装好,你们就不用管了。 所以其实在应用层和传输层中间还有一层叫缩盖的抽象层,这一层不属于互联网通信协议,他只是对传输层级以下做了一个封装。 这个说客的翻译过来就是涛杰字,也就是说以后我们写应用程序就跟涛杰字打交道就可以了,传输成绩一下我们就不用再管了。当然这个模块拍摄已经给我们提供好了,直接应付了说客的就可以了,这里面他给我们提供了各种 app 接口。 现在你要清楚一件事,就是我们现在写庸才剧还是和之前一样,逻辑该怎么写就怎么写,数据该怎么处理就怎么处理,也可以给你的数据加一个自定义的头,这都是你说了算,跟套节制没有任何关系。 但如果你的数据一旦涉及到要通过网络进行传输,这时候才会用到套节词。简单说套节词就是我们用来通过网络发数据和收数据的,所以应用成就没啥好讲的了,就跟我们平时写代码一样,该产生什么数据就产生什么数据,只不过应用成有些常用的协议,比如 htp 或 htps。 这个我们后面再来讲, 现在我们先来学一下套节字,不过在学套节字之前,我觉得还是要给你讲一下 dhcp 和 dns, 这样你对整个网络通信才会有一个完整的认知。

套街自学完之后,现在我们写的服务端还仅仅是停留在持续提供服务的阶段,他不能并发的提供服务,也就是我们的服务端现在只能一次服务一个人。接下来我们就来看一下怎么实现同时服务多个人, 这会涉及到一些多进城、多县城等概念,不过多进城、多县城我们现在还没来得及讲,现在我们就先借用别人写好的模块来实现服务端的并发,我们先来体验一下并发的效果,先不要去纠结它底层是怎么实现的,等我们学完多进城多县城之后, 你自然就知道他底层是怎么实现的了。这里我们用到的模块叫 socket server, 我就直接在这两个文件上改了,把它们复制一下,名字里面我就加一个 tcp 并发,然后还有一个 好,现在我们先来运行一下客户端,输入一个 hello, 服务端就回应了一个大写的 hello, 对吧?然后我们再来运行一个客户端, 这里我们发一个 call andy, 看到了吗?第一个客户端没有断开连接的情况下,服务端是不能处理第二个客户端的消息的,这时候第二个客户端的连接请求还在服务端的半连接池里面,也就是说服务端现在只有一个人提供服务, 他只能把前一个客人服务完之后才能接着服务下一个人,来看一下服务端的代码,也就是说服务端这一个人 首先要从半连接池里面接客,接到这个客人之后,紧接着他就会把这个客人领到房间里面去服务,也就是进行通信。这时候如果我们想做大做强,让我们的店铺可以同时服务更多的客人,最好就是有一个人能够专门负责接客,也就是专门做这一步, 他接到一个客人,就把这个客人交给里面的服务员,里面的服务员再对这个客人进行服务,这样是不是就可以实现同时服务多个客人了?而接下来我们要讲的 sockets server 模块,它的原理就是这样的,现在我们就来用 socket server 模块来改写一下这个服务端,当然客户端没必要改,客户端不需要并发,我们只需要改服务端。首先把 socket server 导进来,需要注意的是,我们用别人的模块套路,就要按照别人规定的套路来。首先要定义一个类,比如类名我们就叫 request handle, 用来处理连接请求的, 他要继承一个积累 socket server 下面的 base request hander。 然后在这个类里面,我们只需要定义一个方法叫 handle, 这个方法是必须写的,在这个方法里面,我们可以通过 self 点 request 拿到连接对象,也就是我们之前的 con, 我还是给你注视一下吧,它相当于 con, 当然这是对于 t c p 协议来说的, udp 是没有连接对象的,然后我们可以把它打印一下,还有一个 self 点 quiet 下划线 address, 这就是客户端的地址。好,这个类我们就暂时写这么多。

放的烟花,点燃每一个盛夏,总让我莫名赶上 遥远的某天,在此前 不经意缠绵,深深,总让我不去回想,就算是月色光芒,阴晴圆缺也惆怅。 夜后,我意味着 在那遥远的某天再次牵手。

作为前宇宙场的程序员面试官,你猜我在面试中问的最多的是啥? socket 到底是什么?看完这个视频,你不仅能搞清楚概念,还能弄明白 socket 的内核。实现故事要从一个插头说起, 当我将插头插入插座,那看起来就像是将两者连起来了,而插座的英文又叫 socket。 巧了,我们程序员搞网络编程时,也会用到一个叫 sock 的东西,其实两者非常相似,通过 sock, 我们可以与某台机子建立连接。如果我们想要在两端之间传份数据,就需要像上面这样, 两端各自执行 socket 方法。得到 fd 聚柄之后,对于服务端依次执行 bind、 lason、 accept 方法,然后坐等客户端的连接请求。执行 connect 方法,向服务端发起建立连接的请求。连接建立完成后,客户端可以执行 sand 方法发送消息,服务端可以执行 receive 方法接收消息。反过来,服务器也可以执行 send 发送消息,客户端执行 receive 接收消息。这就是我们大部分程序员最熟悉的使用场景。 现在我们见过也用过 socket 了,但对大部分程序员来说,他依然是个黑盒。那既然是黑盒,我们索性假设我们忘了 socket, 重新设计一个内核网络传输功能。网络传输从操作上来看,无非就是两段之间互相收发数据,也就是对应读数据和写数据。 写过代码的都知道,为了实现某些功能,我们一般会需要定一个新的数据结构,这个数据结构叫 sock。 由于接收端和发送端可能不止一个,因此我们加入 ip 和端口坐下区分 ip 用来定位是哪台电脑, 端口用来定位是这台电脑上的哪个进程。另外,发送端和接收端的传输方式有很多区别,可以是可靠的 tcp 协议,也可以是不可靠的 udp 协议,甚至还需要支持基于 icnp 协议的拼命令。虽然这些协议各不相同, 但还是有一些功能相似的地方,比如收发数据时的一些逻辑,完全可以附用按面相对象编程的思想,我们可以将不同的协议当成是不同的对象类或结构体,将公共的部分提取出来,通过继承的方式服用功能。 于是我们将功能重新划分下,定义了一些数据结构。 sock 是最基础的结构,维护一些任何协议都有可能会用到的收发数据缓冲区。 next sock 特指用了网络传输功能的 sock, 在 sock 的基础上还加入了 ttl、 ip、 地址、端口这些跟网络传输相关的自断信息。 说到这里大家就蒙了,难道还有不用网络传输的?有,比如 your next domain socket, 用于本机进程之间的通信,直接读写文件,不需要经过网络协议战。 net connection stop 是指面相连接的 stop, 在 next stop 的基础上加入面相连接的协议里相关自断,比如 accept 队列、数据包、分片大小、握手失败、重试次数等。 虽然我们现在提到面相连接的协议就是指 tcp, 但从设计上, lay next 需要支持扩展其他面相连接的新协议,比如 sctp 协议,不了解也没关系,我们跳过 tcp 下划线 sock 就是正儿八经的 tcp 协议专用的 sock 结构了。在 next connection sock 基础上,还加入了 tcp 特有的滑动窗口、拥塞避免等功能。好了,现在有了这套数据结构,每个数据结构实现自己职责范围内的功能,然后再将它们 硬件网卡对接一下,就实现了网络传输的功能。可以想象到这里面的代码肯定非常复杂,同时还操作了网卡硬件,需要比较高的操作系统权限,再考虑到性能和安全,于是决定将它放在操作系统内盒里。 既然跟远端服务端进程收发数据,可以抽象为读和写,操作文件也可以抽象为读和写。正好有句话叫 lay next 里一切皆是文件,那我们索性将内核的 sock 结构封装成文件就好了。 创建 soc 的同时也创建一个文件,文件有个具柄 fd, 说白了就是个文件系统里的身份证号码,通过他可以唯一确定是哪个 soc。 将 fd 聚柄暴露给用户之后,用户操作这个聚柄文件,系统就会将操作指向内和 sock 结构。有了 socksd 聚柄之后,我们将这部分功能抽象成一个个简单的 api 接口,让用户 更方便的实现特定的网络编唱功能。以后别人只需要调用这些 api 接口,就可以驱动我们写好的这一大堆复杂的数据结构去发送数据。这些 api 接口我们列了一下,发现需要有 send、 receive, bind、 listen、 connect 这些。到这里, 我们的内核网络传输功能就算设计完成了。现在是不是眼熟了,上面这些接口方法其实就是 socket 提供出来的接口,所以说 socket 其实就是个代码库或接口层,它介于内核和应用程序之间,提供了一些高度封装过的接口,让我们去使用内核网络的传输功能。到这里 我们应该明白了,我们平时写的应用程序的代码里,虽然用了 socket 实现了收发数据包的功能,但其实真正执行网络通信功能的不是应用程序,而是 linex。 内核相当于应用程序通过 sock 提供的接口,将网络传输的这部分工作外包给了 linx 内核。这听起来像不像我们最熟悉的前后端分离的服务架构?虽然这么说不太严谨,但看上去 linx 就像是被分成了应用程序和内核两个服务 内核,就像是后端暴露了好多个 api 接口,其中一类就是 soccer, the sand 和 receive 这些方法。应用程序就像是前端负责调用内核提供的接口来实现想要的功能。 看到这里,我担心大家会有点混乱,来做个小的总结。在操作系统内和空间里实现网络传输功能的结构是 suck, 基于不同的协议和应用场景,会被泛化为各种类型的 suck, 他们结合硬件共同实现了网络传输功能。 为了将这部分功能暴露给用户空间的应用程序使用,于是引入了 sak 层,同时将 sak 嵌入到文件系统的框架里。 sock 就变成了一个特殊的文件,用户就可以在用户空间使用文件具柄,也就是 socketfd 来操作内和 salt 的网络传输能力。这个 socketfd 是一个 into 类型的数字,现在回去看 socket 的中文翻译套接字,我将它理解为一套用于连接的数字,是不是就觉得特别合理了? 上面关于 socket 怎么实现网络通信功能这一块一笔带过了,现在我们来聊聊。我们以最常用的 tcp 协议为例,简单了解下它是怎么实现网络传输功能的。 我将它分为两阶段,分别是建立连接和数据传输。在客户端代码执行 socket 提供的 connect 方法,传入 socket 和 ip 端口时, 内核会通过 socksd 句柄找到对应的文件,再根据文件里的信息找到内核的 sock 结构,通过这个 sock 结构主动发起三次握手,至此连接就算准。 准备好了之后就可以开始传输数据了。为了实现发送和接收数据的功能, suck 结构题里带了一个发送缓冲区和一个接收缓冲区。说是缓冲区,但其实就是个链表,上面挂着一个个准备要发送或接收的数据。 当应用执行 send 方法发送数据时,同样也会通过 sockfd 句柄找到对应的文件。根据文件指向的 soft 结构,找到这个 soft 结构里带的发送缓冲区。将数据放到发送缓冲区,然后结束流程内核,看心情决定什么时候将这份数据发送出去。 接收数据流程也类似,当数据送到 linax 内核后,数据不是立马给到应用程序的,而是先放在接收缓冲。剧中数据静静躺着,卑微的等待应用程序什么时候执行。 receive 方法来拿一下,就像我的视频,躺在你的推流列表里,卑微的等一个点赞、关注、转 转发三连。看到这里,问题又来了,服务端类似的时候,那么多数据包发到一个类似 socket 上,服务端是怎么区分多个客户端的?客户端发来的数据包上会有原 ip 地址和端口,以及目的 ip 地址和端口这四个元素构成一个四元组,可以用于唯一标记一个客户端。 服务端会创建一个新的内核 sock, 并用四元组声成一个 hasht, 将它放入到一个 hash 表中。下次再有消息进来的时候,通过消息自带的四元组声成 hasht, 再到这个 hash 表里重新取出对应的 sock 就好了。 所以说服务端是通过四元组来区分多个客户端的。最后遗留一个问题,大家都知道 linx 内核是新语言实现的,而新语言既没有累也没有继承的特性,是怎么做到继承的效果的呢?欢迎评论区讨论。想要文字版的笔记,可到我的报上 回复关键字扫即可获取!老规矩,总结的事情就交给你们了!

嗯,大家好,今天我们来讲一下这个森林 fx 五游戏的 plc 啊,如何实现以探网开放式通讯。呃,客户端啊, 那么这个就是一个三菱 fx 五 u 的一个漂 c 实物啊。嗯,这个是他的这个 自带一台网口,自带一台网口,这个自带一台网口,他是支持八个链接,支持八个链接,那么也就说不管他是做什么 mbustcp 协议的话是支持八个链接 啊,他做这个骚客特,也就是以所谓的以太网开放是通讯骚客特编程,骚客特通讯也是支持八个连接的啊,那么这节我们讲的就是说他这个 plc 是做骚客的编证,他是做客户端,然后我们这个以太网条是助手, 就这个已采访调试助手,他是做这个 服务器,他是做服务器啊,然后就说是实现的功能,就是 prc, 他发送给这个以太网条的右手八个字结,以后呢?然后以太网条的右手也要返回给 plc 八个字结,然后 plc 继续 向以太网调制之后发送八个字结啊,就是如此这般的循环啊,如此这般的循环,这就是我们要实现的一个控制要求啊,实现的一个控制要求, 那么我们看一下编写好的这个程序啊,那么这个就是编写好的一个程序,那么这个就是一个一份抽式画,抽式画我们给的这个寄存器,比如第零、第一、第二、第四 三分别付了一个抽纸零一二三,然后底下这部分程程序是我们抽式化,是给第四、第五、第六、第七寄存器清零啊,然后呢,我们每一分钟会对这个第零、第一、第二、第三做一个加一操作,做个加一操作, 然后呢,我们会实时判断啊,第零,第一、第二、第三的值,如果大于六千的时候啊,就是分别各自清零,这样子啊,这就是一小段逻辑程序,然后呢,这一部分程序, 这部分成绩就是一个连接的建立啊,连接的建立主要用到的是一个 sp 的 soc open 之令啊,这是就是连接建立之令。 然后呢,底下这部分程序是连接的关闭啊,连接的关闭,那么主要用到一个指令,就是 是 sp 的 soc 克鲁斯之令啊。呃,接下来这一份指,这个程序呢,它是一个发送,就是连接建立以后就可以进行数据发送了,主要用到的是一个 sp 的 socsnd 之令,就是数据的发送,数据发送 啊,然后这一部分就用到的是一个这部分是接收,就是 prc 接收,那么用到的一个 质量就是 sp 的 soc rcv, 质量就是就是接收,那么啊,那么就是 prc 作为客户端所给的编程客户端,他发送 给以探网条助手,发送数据的时候用的是 sp 的 socsnd 之类啊,那么以探网条助手,然后返回给 ps c 的数据, ps 要接收,那么用的就是 sp 的 soc rcv 指令啊,那么接下来我们折中就是介绍一下这四个指令啊。首先我就介绍连接建立的这个指令,就是 sp 的 soc open 指令啊, 连接的建立连就是这个指令啊,就这个指令 sp 的 soc ope n 指令啊,那这个指令他是有四个操作数啊,四个操作数分别是这个 u 大写的 u, 他写的 u, 他是一个虚拟的,就是我们在程序输入的时候应一般就输一个这个双引号括写的一个幽灵字符串, 就这样的啊,这是第一个参数操作数,第二个操作数是连接编号啊,前面我们说了这个五 u 的自带网口,它是支持八个连接啊,那么这个 s 一这个参数它的范围就是一, 一到八,一到八啊,那么这里边我们设的就是一,设的就是一,因为我们平时做客户端只是连一个服务器,就连这个一,他们调助手连接编号,我们就设为一,设为开一啊, 这样子,然后呢 s 二这个操作数, s 二操作数呢,是存储控制数据的软件,其实编号它这个含义呢?它是占用十个字啊,它的数字类型是字,它占用十个字, 后面我们详细说他的这些这个含义啊。然后这个第四个操作是 d, 那就是一个指令结束,一个标志位啊, 没错,数据类型就是位,他占用两个位啊,占用两个位,一个是指定结束位,然后是一个异常异常标志位,然后是一个异常标志位,那么指定结束位就是 d 加零,异常位就是 d 加一,这样子啊,这就是这个指令的这几个 含义啊。然后接下来我们主要看一下这个 s 二这个参数啊,主要看一下 s 二这个参数, s 二它主要是占用了十个字,分别是 s 二加零一直到 s 二加九啊,那么 我们先看这 s 二加零,那么 s 二加零这个他主要是这个内容是什么?就是指定在连接的开放处理时,是使用通过工程工具设置的参数 设置,还是使用控制数据这样子,然后呢这个设置范围分别是零零零零 h 和八零零零 h 啊,那 这个说白了是什么意思?就是说如果 s 二加零的值,我们设为零零零零 h, 那么就是说你像这个像什么通信协议了,这个 prc 的本身的端口号了,以及对方设备也就服务器的这个 ip 地址,服务器的端口号这些三首, 我们就是通过这个编程软件的一些工程设置工具来进行设置。如果 s 二加零,我们设为八千 h 的话,那么就是要上述说的那些,比如说是通信协议了,靠接自通信功能的有序无序,还有通信协议设置这些参数, 我们就是通过这个,比如说通过 s 二加二、 s 二加三、 s 二加四、 s 二加五、 s 二加六这些计算器来设置 啊。具体比如说 s 二加零是多少呢?我们看一下啊,我们程序里面 s 二加零,我们设的是第一百,第一百那么 s 二加一就是 d 幺零幺, s 二加二就是 d 幺零二啊,那么我们看一下,我们程序里边,我们可以看一下, 第一百我们设的是 h 零,也就是设的设的是零,那么第一百也就是 s 二加零,那么 s 二加零我们设为的是零,就是零零零零 h, 那么也就是说像这个同性协议了,什什么开放方式了?同性协议设置了本地端口号,对方设备的 ip 地址以及对方设备的端口号, 都是通过编程软件一些工程工具进行设置的啊,那么具体怎么设置呢?因为现在设的这个 s 二加零设 是零,那么我就看一下是怎么设置,那我们就选择个导航里边的这个参数,然后我们选择 fx5ucpu, 然后我们再选择这个模块参数,模块参数里边能选中这个仪态网端口,然后我们双击这个仪态网端口, 哦,双击以太阳端口。首先我们要设置的就是 plc 自己的 ipd 值,幺九二点幺六八点一点幺六幺子网烟码是二五点二五点二五点零,默认网关是幺九二点幺六八点一点一。通讯数据代码, 同级数据代码是这个二斤至,二斤至啊,然后呢 cc 链可这这一块这部分默认不设啊,然后这个摩托把 tcp 设置,这部分我们也不设也不设,然后我们就再看一下这个对象设备连接配置设置, 我们点击这个,点击这个,然后呢我们我们可以看一下,我们是拖入了一个 activ 一连接设备啊,这个设备就是在这里边就是以探网设备通用,里边 activ 一连接设备 还可以再拖一个啊,总共可以拖八个,因为他是支持八个连接,这里面我拖入一个就可以了。拖入这个 act i v 连接设备是什么意思呢? 那么拖入这个设备的意思就是说这个时候 pic 就是作为客户端啊,然后其他设备是作为服务器的,就这意思, 然后呢型号就是 s t i v e 连接设备。通讯手段,我们就选择骚 k 的通讯啊,而不是通讯协议,如果你选择通讯协议的话,那么我们就可以通过 通讯协议支持功能指令实现摩托 boss tcp 客户端,这里边我们选择骚克特,因为我们目的是已开往开放式通讯啊,然后协议是 tcp 可编成 prc 的 ip 地址幺九二的幺六八点一点幺六幺端口号,我们就设为四零九六四零九六, 然后传感器设备的 ip 地址啊,因为我们是跟以太网调试助手进行通讯,那么以太网调试助手是在本台电脑上进行运行,那么我们就要查一下本台电脑的 ip 地址啊, 我们看一下本台电脑的 ip 地址是什么,幺九二点幺六八点一点七一啊,那么就把这需要把这个改一下,七二改成七一, 然后单个号我们也给他设置为四零九六也是可以的啊,设置为四四零九六也是可以的。 就这么着这个操作步骤就是打开以后,然后掏入一个 act i 连接设备,然后设置一下这个 主要是传感器,传感器就是设备服务器的 ip 地址,装口号,还有这个 prc 的装口号,还有这个通讯手段这些。然后设置好了以后呢,我们检查一遍好了,没有错误,没有警告啊, 然后呢我们就这个时候就点击这个反应设置并关闭这样子,然后我们点击一下应用,然后我们保存一下 啊,那么这样的话就是说,呃,当我们要执行这个 soc open 指令打开连接的时候,一些这个设备的这些通讯三数我们就设置好了,我们就设置好了啊,那么就说是设置好了以后呢,那么就是说 如果我们要执行打开连接的话,是有这个前提条件的啊,前提条件的,那也就是说 sd 幺零六八零点零以及 sd 幺零六八幺点零都为零的情况下,都为零的情况下,就表明是打开连接的前 这个前提工作已经准备好了,这个时候我们才可以执行这个打开链接,才可以执行打开链接啊,那么这个时候当这 sd 幺零六八零点零以及 sd 幺零六八幺点零都为零的情况下, 我们给 m 一百一个商生言,那么这个时候就会去执行这个打开连接的这个操作,当前提是服务器要准备好,服务器准备好啊,服务器的单号四零九六啊,这样子, 然后呢,如果打开成功的话,呃,当这个打开连连接的这个操作,这个指令 soco 很指令指型完成之后呢,那么他的完成位就是这个 d d 完成位,他就这个 m 幺零幺就会为一好,那么 m 幺零幺为一的话,那么这个当这个异常完 一场位, m 幺零号为零的话,我们就认为是正常打开了,我们就认认为是正常打,那么正常打开的话,我们就可以把 m 幺二零,什么 m 幺二幺零三这些标志我,我给他置位,我就可以执行一些发送和接收操作了啊, 这样子,如果是异常为 m 幺零二,他是唯一的话,那么这个时候我们就 set 幺零四,那么幺零四就是一个异 场,就打开连接一场,标志位就会被支位,就会被支位,这样子啊,这就打开连接这一块的,这个我们就说到这里, 然后接下来我们说一下这个关闭连接啊,关闭连接,关闭连接主要是用到这个 sp 的 soc 克鲁斯指令啊,看一下这个指令就是连接的切断 sp 的 soc 克鲁斯指令啊,这个指令也是有四个操作数啊,第一个操作数也是虚拟的, 我们可以看,那么我们就输入一个这个双引号,这个括起来的一个幽灵这个自负串,然后 s 一 这个操作数据是连接编号,连接编号一到八,那么这里边我们连接编号就是开一,开一啊,开一这样子,嗯,然后 s 二这个是它是占用, 这个操作是占有两个字,占有两个字啊,然后 d 就是一个指令结束标志位以及指令异常接受标志位啊,占有两个位,占有两个位, 我看一下 s 二啊的含义, s 二含义就是也是录系统用的系, s 二加零是系统区域, s 二加一是结束状态啊,那零零零零就是正常结束,除此之外就是异常接受,这样子,这就是 关闭连接这个质量,这个质量比较简单啊,这个质量比较简单。然后我们就是说一下这个质量如何执行啊? 那么就说是,呃,正常情况下就是说当打开连接成功以后啊,当打开连接成功以后,那么这个时候 sd 幺零六八幺点零就会唯一,就会唯一,并且 sd 幺零六八零点零也会唯一啊, 这两个标志会含义呢?我们可以在这个你探往通讯平安这个手册里边,我们可以看一下啊,其实不太。 sd 幺零六八零点零啊。 sd 幺零六八。 sd 幺零六八零啊,他是 b 零到 b t 对面,代表这个连接一到连接八啊,他为零的话就是关闭开放未结束啊,然后呢?为一的话就是开放结束啊。 sd 幺零六八幺哦, b 零 b 七代表八个连接为零的话就是不可接受开放请求啊, 唯一的话就是可接受开放请求啊,这样子,呃,其实我们就可以这么理解,就是说当正确打开连接以后呢,这两个标注也都是唯一的啊,都是唯一的,那么正常情况下,呃,这两个标注 都是唯一的啊,那么当出现一些什么网络中断或者说福气自动关闭的连接,那么这个时候 sd 幺零六八零点零他会就,他就会由一变成零,就会产生一个下降炎信号,所以当这种异常情况下的话, 当这个 sd 幺零六八零点零产生一个下降安信号,并且此时 sd 幺零六八幺点零为一,那么我们这个时候让 m 幺零五接通一个扫描周期,那么 m 幺零五接通以后,就会驱动这个 sp 的 soc 克鲁斯指令去执行 这个关闭连接,去执行关闭连接啊,啊,关闭连接执行完成之后呢, m 幺零八就会置位, 当这个异常结束的,呃,无异常结束的时候,我们就这个赛特 m 幺幺零啊, 然后把这个异常接受标志位 m 幺幺幺给他复位,这样子啊。 还有一种情况就是说当我们正常通讯的时候,我们需要手,我们 plc 作为这个客户端,我们需要手动关闭连接,那么这个这种情况就是说 sd 幺零六八零点零是唯一的情况下,唯一的情况下,然后我们给 m 幺零六一个上升严信号, 那么这个时候也会去执行 sp 的 soc 克罗斯指令去关闭这个连接,去关闭连接啊,这就是打开连接和关闭连接 啊,那就当打开连接以后,我们前面我们说了,正常打开连接以后,我们就会赛特 m 幺二零以及赛特 m 幺零三啊,赛特 m 幺二零,然后我们来看一下啊,赛 赛特 m 幺二零就正常连接,打开之后赛特 m 幺二零。我们 plc 作为客户端,首先会发送八个自己的数据啊,那么这段就是 plc 发送数据,发送数据主要我们用的是这个指令, sp 的 socsnd 就是发送指令啊,我们来看一下这个指令,数据的发送 直接发送这个指令, sp 的 socsnd 这个指令是有几个操作数?一二三四五五个操作数,那么第一个操作数 u 仍然是一个虚拟的,打输入的话就输入一个双引号的一个幽灵自负串, s 一是连接编号一到八,这里面我们仍旧输入的是一太一,然后呢,这个 s 二 他是占用两个这个字,两个字啊,这个含义一会我们再说。然后 s 三 s 三 是我们设置的是幺三零, s 三是什么?他是占用, s 三是存储发送数据的软元件,其实编号啊,占用一个要素啊, 然后呢,这个 d 是这个指令结束标志位以及异常完成标志位啊,我们主要来看一下 s 二和 s 三, s 二 啊, s 二是加零,是一个系统区域啊, s 二加一是个结束结束状态,结束状态零零零零就是正常接触以外的话就是异常接触啊。那么 s 我们看一下 s 二,我们用的是 d 幺幺二, d 幺幺二,这个是系系统性,一般我们不用管。然后 s 三 s 三加零是一个发送数据长度啊,就是这里边主要的指的是自己 结束自结束啊,那么 s 三加一就是具体要发送的这个数据保存的这个一个寄存器区域啊,那么看一下我们 s 三加零,我们设置是 d 幺三零啊, 那么第幺三年我们负值的,我们负的是太八,也就是我们要发送八个字节,那么一次要发送八个字节的数据,就依次保存在 d 幺三幺幺三二幺三三幺三四里边,这样子啊, 这样子,这这个就是这个发送质量啊。然后我们分享这个执行过程,首先是连接建立成功之后, m 幺二零 就会被支位, m 幺二零被支位以后,我们延时啊,我们延时,我们延时,延时时间到了以后就会把 m 幺二二给支位 m 幺幺二幺二二 之位,以后呢 m 幺二之位的话,然后因为这个连接,这个时候连接已经建立了,那么这个时候 sd 幺零六八零点零就会为一,然后呢 m 幺幺二是一个 sp 的 socsnd 指令, 找一个完成标志位,那么这个时候这个这个指令没有执行,那么这个标志位肯定也是为零的,那么这路就是接通的,那么这路接通的话,我们首先就是给 d 幺三零, d 幺三零就是这个 s 三加零这个三种发送数据长度,这里边指的是字结束啊,而不是字数 给他付一个八,就是发送八个字节。然后呢依次就是说要发送的数据,我们是最原始数据,我们是保存在第零、第一、第二、第三里边啊,我们就是把第零、第一、第二、第三高第八位互换,然后我们送给第幺 三幺幺三二幺三三幺三四这里边,然后我们去执行这个 sp 的 soc snd 指令进行发送,进行发送啊,发送完成,这个指令执行完成之后呢, m 幺二幺二就会为一啊, m 幺幺二为何为一?然后我们就 set m 幺二幺, 然后瑞赛的 m 幺二二这样子,然后你进一步判断看到底是异常是正常完成还是异常完成,正常完成我们就把这个 正常完成标志为 m 幺幺四之位,如果异常完成,我们就把异常完成标志为 m 幺幺五幺幺五给他之位。啊,那么我们说发送执行完成之后呢,我们会把 m 幺二幺之位啊,那么紧接着就到了这个接收数据,接收数据这样子啊,接收数据, 然后接收数据,我们主要是用到一个 sp 的 soc rcv 质量就是数据接收,看分一下这个质量啊,数据接收 sb 的 soc rcv 指令,这个指令也是有五个三兽,一二三四五,第一个三兽不用说虚拟的,我们输入就是一个双引号括起来的一个幽灵磁浮圈,然后 s 一连接,编号啊, 范围就是一到八,这里面我们设的是一一个连接,第一个连接,然后呢 s 二 s 二参数, s 二参数我们设的 d 幺幺四,一会我们再分析 s, 然后第一参数是纯属接收数据的软元件,其实编号第一,第一我们设的是 d 幺六零啊,然后第二就是指定结束标志位以及异常完成标志位啊,然后我们看一下 s 二 和第一 s 二, s 二加零是个系统区域, s 二加一是结束状态啊,跟前面是一样的啊,零零零零是正常接受,零零零零 h 以外是异常接受, 那么第一参数,第一加零是接收这个数据长度,那么第一加零我们设的是 d 幺六零,那么也就是说在接收数据的时候, d 幺六零保存的就是接收的字节 记数啊,然后呢依次 d 加一保存的就是具体的接收这个数据啊,你比如说打个比方,这个第一加零,第一加零这边就是 d 幺六零,第幺六零里面如果是八的话,那么 一四后面就会占用第一加一、第一加二、第一加三、第一加四四个字啊,八个字结就是这个意思啊, 就这个意思,然后我们分享这个指令的执行啊,前面说了,发送完成之后呢,我们把 m 幺二幺职位啊, m 幺二幺职位, m 幺二幺职位,那么 m 幺二幺职位之后呢?然后这个时候这个正常连接的情况下, sd 幺零六八零点零是 唯一的状态啊,唯一的状态。然后我们看一下 sd 幺零六八二点零啊, sd 幺零六八二点零是烧烤的通信接收状态信号啊,唯一的话开放请求中就是接收就接收啊, 然后 m 幺幺六是指令完,这个执行完成标志为,没有执行指令的情况下,他是为零的,那么当 m 幺二幺为一的话,就去执行 这个指令的接收,就会执行这个接收这条指令,进行接收啊,进行接收啊,然后呢 m 幺幺六为一的话,证明这条指令已经执行完成了, 证明这条质量已经执行完成了。然后我们这个时候会把 m 幺二零给治卫啊, m 幺二零治卫,然后复位 m 幺二幺,复位 m 幺二幺,然后呢如果是正常执行完成,那么正常执行完成的话,那么 m 幺幺七 他这个异常标志位就是会为零的啊,那么这个时候我们就进行一个数据的转传的 d 幺六幺六零,就是这个接收的自己的长度,接收的自己的长度,我们保存在第幺幺六里边 啊,幺幺里边,然后接收的这个第一个字节,第二个字节我们就我们就保存在第四里边, 接收的第三第四个字节我们就保存在第五啊,接收的第五第六个字节,我们就保存第六计算器里边啊,接收的第七第八个字节我们就保存在第七里边,这样子啊, 然后是正常结束,正常接受完成的话,我们就把正常接受完成标志位 m 幺幺八之位,如果是异常接受,那么异常接受的时候,这个时候 m 幺幺七就会 职位,那么这时候我们就把异常接收标志位 m 幺九给职位,同时这个幺幺八就复位了啊,这就整个一个连接建立 连接关闭啊,发送数据接收出去一个过程,那么我们可以看到就是当接收完成之后呢,我们会把 m 幺二零至位, m 幺二幺复位, m 幺二幺复位就不再接收,那么 m 幺二 能治胃以后呢,就又回到发送了, m 幺二零治胃以后就又延时,延时就到了后,我们又把这个 m 幺二二给他治胃, m 幺二二治胃之后呢,就又开始新闻的发送,新闻的发送啊,那么当如果我们不需要进行发送接收的时候,我们就 比如说我们手动关闭连接,那么给 m 幺零六一个信号,那么这个时候 m 幺零二给个信号之后,就会执行这个连接关闭的这个指令,那么连接关闭指令执行完成之后呢, 就会把这个相应的这个些收发标志位 m 幺二零幺二幺幺二二幺二二就给复位,那么这个时候就不会去执行这个发送手机接收数据了,这就是指令这大致的一个过程啊,大致一个过程,那么接下来我们就把这个程序 下载到 ps 里边,然后我们进行一个这个演示,进行一个演示啊, 那首先我们要做的就是先这个服务器先建立好连接,服一服务器建立好连接,那么这个以太网条的时候就是做 tcp sever 啊,然后的 ipd, 这是本机的 ip 地址幺九二的幺六八点一点七一啊,张口号,我们前面我说了,平时这里面设的是四零九六,然后我们开始监听,开始监听等待客户端的接入, 这之后呢,然后我们就连接漂流 c 下载程序啊, 啊,已经成功 链接 plc, 然后点击在线啊写肉质可编程控制器全选直行式, 是全部,是啊,全部是选择全部是。 好,这时候呢,我们最好给 pic 断一次电啊, pic 断一次电, 然后再给 pic 上电,好,给 pic 上电。之后呢,我们这个选择在线监视啊,监视开始全窗口。好,那么这个时候我们就要 首先要建立连接啊,那就是这一步建立连接,那么这个时候我们可以看到 sd 幺零六八零点零以及 sd 幺零六八幺点零都是为零的状态,那么这个时候建立连接的这个准备工作已经做好了啊,准备工作已经,那么这个时候我们给 m 一百, 给 m 一百一个这个上升烟信号,就会打开连接啊,就会打开连接啊, 同时这个时候服务器也已经准备好了啊,下面我们说实现功能,就是说近两年以后呢, plc 会给串给以探网调咒手发送八个字节,同时以探网条就是收到这八个字节以后,给 plc 再返回八个字节,如此循环啊,如此循环 能丢双目的, 一一一一 哦,八个字结啊,一一一一二二二二三三三三四四四四这样子,然后我们借你连接,那么就是 m 幺零零 当前时更改好看一下,好,这个时候 receive from 幺九二点幺六八点一点幺六幺四点九六,已经收以探讨调,就是已经收到 plc 发送过来的这个数据啊,发送过来这个数据其实其实就是第零到第三的数据, 我们可以看一下第零第三的收据,第零第一、第二、第三,现在值啊,已经发生改变了,因为他会一分钟做加一操作的啊,那么这个时候我们给 你返回,好,点击返回以后,他们这个以探网条的时候,马上就有收到来自 plc 发送的数据,那么这个时候第零第一、第二、第三的值分别就是二三四五, 可以看一下二三四五。那么同时呢,以探网调制的时候,发送八个自己的数据,我们我们会映射到第四、第五、第六、第七,可以看接收啊,接收, 接收到这个数据,我们会一转乘至,你看转乘至第四、第五、第六、第七这里边的啊,那么继续发送 啊,我们可以把这个设置一个这个自动发送啊, 勾选这个数据流循环发送,然后点击一下发送, 那么这样的话就会循环啊,就会循环,那么我们可以看一下第四、第五、第六、第七的值,现在是 h 一一一一, h 二二二二, h 三三三四, h 四四四四啊,那么第零的值现在是三四五六, 那么现在以电话条是做着收到的数据就是三四五六三四五六啊,三四五六, 好,现在说你变 变成四五六七了,因为前面我们说了,我们编写了一小段逻辑程序啊,一分钟上升严啊,我们会给这个第零、第一、第二、第三做一个加一操作,这么方便观察这个数据变化啊,方便观察这个数据变化啊,我们现在给这个 m 一百复位一下 啊,复一下,先复一了,我现在可以就可以看到啊,现在 sd 幺零六八幺点零以及 sd 幺零六八零的都是为零的,那么如果这个是我们要手动关闭连接,那么这个是我们给 m 幺零六一个这个信号上升信号,那么就会 这个是就会执行连接的,关闭连接的关闭啊,正常通讯看连接对象以前往天就这里边就可以观察得到连接对象幺九二点幺六八点一点幺六幺,然后端口号四零九六啊,这个 ip 就是 plc 的 ip 地址,端口号就是 plc 的端口号啊,然后呢这个就是以探望调制注册的这个 ip 地址幺九二的幺六八点一点七一。端口号四零九六,就是 plc 这里边的这个,我们这里边设置的这个 啊,我们可以看一下啊, acta v 一连接设备啊,通讯手段, soco 通讯协议, tcp 可编程控制器幺九二的幺六八点一点幺六幺。可编程控制器的 ipd 值 平常在于张口号四零九六,然后看一眼设备,也就以前往条入手啊,张 ap 地址幺九二点幺六八点一点七一,张口号四零九六,这样子啊, 啊,现在是不停的这个循环发送啊,先是是 psc 先发送,然后以开网条,就是收到数据以后返回,然后 psc 收到以后再发送,就是这样一个循环啊,这样一个循环, 这样一个情况,就是 plc 是做客户端去主动去连接这个服务器,去选择一台网调,就是所谓服务器啊,这样子 啊,比如说我们现在要手动关闭这个连接啊,手动关,手动关闭连接的话,那么这个时候我们就要给 m 幺零六一个信号啊, 可以看看一下现在连接状态,是连接状态啊,那么这个时候我们给 m 幺零六一个信号, 好了, 现在连接已经关闭,看连接已经关闭了好,那么这个时候这个以探网调试助手作为这个 服务器 tcp 服务器,他就又处于一个等待客户的客户端连接这样一个状态啊,那么这个时候先给幺零六服一下位,那么这个是我们要如果要建立这个连接的话, 那么这个就要等到 sd 幺零六八零点零以及 sd 幺零六八零幺点零都为零的情况下,然后这个是我们给 m 一百一个信号,给 m 一百一个信号,那么就又开始进行连接建立啊,这是我们给联系给 m 一百一个信号 看一看啊,连接成功了,连接成功了,那么连接成功后就收到这个 prc 的这个数据,八个字接数据,那么这个时候, 那么这个时候呢? prc 就处于一个等待接收这样一个状态,等待接收,你看这个时候 sd 幺零六八二点零,是为为 为零的啊,为零的,那么我们发送一个数据的话,以探讨条就是发送,发送一个数据的话,那么他就会这个 唯一啊,这个太快,看不到啊,看不到啊, 接收的数据,看现在又就是又处于一个等待接收这样一个状态,等待接收这样一个状态啊, 处于一个等待接收状态,然后点击发送, 我们可以看到啊, d 幺六零, d 幺六零就是这个接收,这个 就是这个第一、第一三首啊,第一三首,我们看一下第一三首是啥?第一加零接收数据长度,那么第幺零现在是八,证明就是接收了八个字节啊,其实八个字节,那么接受他就八个字节, 具体接收的这个八个字的数据就保依次保存在第幺六幺、第幺六二、第幺六三、第幺六四的一张, 然后我们把这八个四个字八个字接的数据啊,我们就保存在第四、第五、第六、第七里边, 这里边做了个高低八位呼唤啊,因为这个数据持续问题啊,做了个高低八位呼唤, 发送的时候也是一样,也是做了一个这个高低八位互换这样一个啊,高低八位互换可以看一下, 也是先把第零送给第幺三幺幺三零,是要发送的,此结束,那么要发送的数据第一个就是第幺三幺幺三二幺三三幺三四啊,那么原始我们发送数据是保存在第零、第一、第二、第三里边啊,送给第零送给第幺三幺里边,然后我们做高低八位互换啊, 这样子啊,现在数据已经发生改变了,现在 d 零的值就是零零零九,第一的值就是零零零 a, 然后第二的值就是零零零 b, 第三的值就是零零零 c 啊,零零 c, 这样子,我可以改个数据 五,那么现在第七的值应该就是我们看一看一下第七的值,第七的值 h 四四五五啊, h 四四五五这样子, h 四四五五,我们可以改一下啊,二二 三三四四五五六六七七八八。发了这发送 我们就是为什么要做高低八位互换呢?你看如果不做高低八位互换的话,那么我们收到的这个第四的,我们第四的值就是 h 二二幺幺了,而不是 h 幺幺二二了啊,我们就为了保证这个顺序,比如说 h 一一二二 啊,我们就认为就是这个一一,就是我们要发送的第一个字的第一个字的这个高八位,二二就是第一个字的第八位,所以我们要做高低八位互换,这样子啊,看 h 一幺二啊, h 三三四四, h 五五六六, h 七七八八这样子啊, 那么其实就是用这个骚 k 的编程啊,用骚 k 的编程去,我们也也可以实现这个摩托把子 tcp 摩托把子 tcp 协议啊, 那么现现在我们这个自定义相当于就是说是,呃, glc 是客户端,然后发送八个字节,然后呢?这个以上调试之后,接收到接收八个字节,又返回八个字节啊。当然我们也看 按照梦段的 tcb 的豹纹格式来定义发送接收的这个数据长度,以及具体的一些这个 数据的含义啊,这样子包括你像一些这个西门子两百 smart 的 plc, 他这个蒙巴斯 tcp, 他就是用开放式通讯来实现的啊,封装成的这种蒙巴斯 tcp 库,这样子, 这是一个啊,前面说了是我们结束,我们是手动结束,手动结束,那么当会当出现一些其他情况,比如说异常结束的情况下,比如说我服务器就以采访调制,是我们如果 主动的关闭了连接,断开连接哈,那么这个时候 sd 幺零六八零点零,这个就会产生一个下降原因信号,那这个时候 m 幺零五就会接通一个扫描周期, m 幺幺 幺零五接通一个扫描周期,也会去执行这个关闭连接这个指令啊,我来操作一下,看看是不是 对,已经取消了哈,已经取消了啊,这个连,这个时候连接就已经关闭了啊,连接已经就已经关闭了,那么这个时候你发送手续啊,没有连接,没有连接对象,这样子啊,没有连接对象 啊,这个时候就如果要进行这个数据发送与接收,就要重新进行连接的建立啊,重新进行连接的建立,你们连接断开以后呢,我们就会把这个 m 幺二零 m 幺二幺 m 幺二给他复位,给他复位啊,那么 m 幺二零 m 幺二零是 是一个什么 m 幺呢?就是他这接通以后的他会延时,延时时间到后就会把 m 幺二二去织为 m 幺二,就是用来驱动发送的啊, m 幺二幺就是用来这个驱动接收的,驱动接收的, 所以连接关闭以后呢,我们就不能再进行这个数据的发送与结束了,所以当之前这个 sp 的 soc 克鲁斯决定的时候,我们就要把这这几个标志会给他复位, m 幺二零幺二幺幺二,给他复位啊, 那么再举行一个这个连接的建立吧,啊,那么连接建立,我们就是 m 一百 啊,然后把 m 一百敷一下,这个是连接,应该已经建立成功了啊,建立成功了啊,我们让数据流,数据流 循环发送啊,是一个循环发送,那么这样的话, plc 作为客户端以开网条就是作为福气,他就是处于一个这个循环发送接收啊,循环发送接收这样一个状态啊。然后呢,我们现在就是 再把这个 plc 实现这个骚客的编程客户端,整个过程我们再说一遍啊,整个过程我们再说一遍,那么三菱 fs 五优啊,这就是这个 plc 实物, plc 实物啊,三十二点,三十二点的 他实现以探望开放的东西有骚可编程啊,做客户端,那么呃,进行数据的发送与接收,一般会用到四个指令啊,一般会用到四个指令,一个是连接的,建立连接的 建立就是 sp 的 soc open 指令, sp 的 socopen 指令就是用来建立连接啊,用来建立连接, 这是第一个指令啊,第一个指令,这个指令呢吗?嗯,主要是有四个这个操作术,第一个操作术就是虚拟的啊,我们一边输入的话就输入一个双引号,火起来的一个幽灵的这个字符串啊。 第二个操作数就是连接编号啊,连接编号的范围就是一到八,一到八,因为我用这款 prc 的自带一台网口就 支持八个连接。支持八个,那我们就使用第一个连接啊,我们就使用第一个连接,所以这里边的这个 这个操作数就是开一,开一啊,如果这里边的这个连接编号我们是开二的话,那么相应的 这个两个标志位啊, sd 幺零六八零点零,我们就要改成 sd 幺零六八零点一, sd 幺零六八幺点零,我们就要改成 sd 幺零六八幺点一了啊, 以此类推,如果连接编号我们设置的是太八太八,那么这个 sd 幺零六八零点零就要改成 sd 幺零六八零点七,然后这个 sd 幺零六八幺点零就要改成 sd 幺零六八幺点七啊,这样子, 然后呢这是 s 一这个操作数, s 二这个操作数是他是有这几个,他占用了十个字啊,十个字,其中 s 二加零啊,我看一下,我们这里 s 二加零,我们设的是第一版,那么先用的 s 二加一就是幺 d 幺零幺啊,那么 s 二加零呢?他 主要是设就是这个,他主要是就是说是用来指定到底是这个通信协议了,套接自通信功能的有序无序以及通信协议的设置,还有开放方式 这些,还有这个本地专柜号啊,福气的 ip 地址,福气的专柜号,这些参数到底是通过这个编程软件里边工程工具进行设置呢?还是说通过控制数据,就比如说通过这些计算器进行设置呢? 说 s 二加零,如果我们设置为零,那么上述说的那些通缉三手,我们就是通过编程软件很直观的进行设置, 如果 s 二加零就是第一百,如果我们设的是八千 h 的话,那么上述的那些通讯三手,我们就要通过这些启程器 s 二加二,那么 s 二加二就是 d 幺零二, s 二加三就是 d 幺零三, s 二加四就是 d 幺零四,以此类推啊,就是通过在梯形图里边编程进行设定,当然 就说通过工程工具进行设定,当然是很直观很直观的,所以一般 s 二加零,也就是这里边就是第一版,我们就设定为零,设定为零的可以看一下设定为零的啊, 那么 s 二加零第一百是为零的话,那么其他通讯参数在哪里设置呢?就是这个导航,选中这个导航,导航里边有个参数,参数里边我们选中 fx5ucpu, 然后我们选择模块参数,然后选中这个仪态网端口,双击把它打开 啊,首先设置的是的这个 plc 的 ip 地址,子网烟马和默认网关,就是这 解散手,然后我们就会设置这个对象设备连接配置设置,这话怎么这么热口点开以后 就会出现这个以贪网配置这个端口,那么我们就需要拖入一个,在这个以贪网设备通用里面,我拖入一个 a c t i v v e 连接设备,拖入这个设备的意思就是说平时作为客户端啊,作为客户端,其他设备作为福气,就这意思, 型号 stiv 连接设备通讯手段,我们就选择烧烤的通讯啊,烧烤的通讯协议 tcp, 然后呢 plc 的 ip 地址,这里就需要设置 plc 的端口号啊, 然后呢再设置服务器的 ip 地址,因这里边以探网条助手,它是服务器,那么就设置本机本台电脑的 ip 地址 以及端口号,这样子啊,设置完成之后,我们点击反应设置并关闭,这样子啊,然后点击点击一下应用,那么这个跟 sp 的 soc open 之令有关的这个设置就完成了,这是打开连接啊,打开连接,然后 打开连接,那自然而然就会还有这个关闭连接啊,关闭连接,打开连接,还有个三种,就是 d 操作手,他这个是指令结束标志位以及一个指令异常完成标志位占用两个位,占用两个位啊,占用两个位。 接下就是连接的这个关闭连接的关闭呢,就是用的是这个指令, sp 的 soc 克鲁斯指令啊,这个指令也是有四个操作数,第一个操作数跟前面的这个打开连接指令一样,虚拟的,我们输入的就是这个 双引号,括起来这个游零自负串啊,然后 s 一操作数就是连接编号,这里我们设的就是看一看一啊,如果你设的是看二、看三、看四的话,相应的这些标志位, 这两个标志位就要发生改变,就要发生改变啊,这样子,那么相用的这个设置里边刚才说的一天往配置设置里边也要发生一个改变,也要发生一个改变,这样子啊, 嗯,然后这个 s 二就是这个这个参数,它占有两个字, s 二系统区域结束状态啊, 然后第三首就是这个结束,这个指令结束标志位以及异常结束标志位啊,占用两个位,这就是连接的关闭,连接的关闭啊,连接的关闭呢,他是两 两种情况,一种情况是正常通讯的情况下,网络中断或者说服气那边关闭的连接,那么这个时候呢? sd 幺零六八零点零,当然这个是对于连接一来说,开一连接一来说,他就会产生一个下降炎,产生一个下降炎,然后就是这个时候 sd 幺零六八幺点零为一, 这个时候给 m 幺零五一个脉冲信号,给一个脉冲信号, m 幺零五接通以后就会执行关闭连接,执行关闭,这是一种关闭。另外一种情况就是说平时作为客户端 嫖贼作为客户端,我们需要手动关闭连接,需要手动关闭连接的时候,那么这个时候在 sd 幺零六八零的零点零的情,唯一的情况下, m 幺零六,我给一个上升烟信号,也会去执行这个指令,关闭连 连接,去关闭连接啊,这就是关闭连接啊啊,接下来是个数据的发送,数据发送我们用的就是 sp 的 soc snd, 他是剩的的缩写啊,应该是剩的缩写 snd, 他这个质量呢,操作数就有一二三四五啊,五个,那么第一个是虚拟的,我们输入的时候也是输入一个双引号啊,应该是双引号吧, 括起来一个幽灵的字符串啊,然后呢, s 一操作数就是连接编号当然是 s 一了,是 s 一啊, 开一,我们设的开一, s 二呢,是看一下 s 二的含义, s 二就是系统区域以及这个结束状态啊,这样子 s 三是存储发送数据的软人软件件,其实编号来看 s 三 s 三,那么这里边我们 s 三我们设的是幺三零 d 幺三零,那么看一下 s 三加零就是发送数据长, 这里边指的是字结束字结束啊,那么第幺三零我们设的是八,那么证明我们发送的时候,我们是发八个字结, 发八个字节,也就是四个字,那么这四个字啊,一次就保存在 d 幺三幺,因为幺三零是自己技术,那么 d 幺三幺就是 第一个和第二个字结啊,以此类推,幺三二幺三三,好,幺三四啊,四个字,八个字结啊,这样子,这是发发送数据,发送数据,那么接受数据,我们用的就是这 这个 sp 的 soc rcv 啊,所以就是 receive 缩写,他也占用了这个五个操作手啊,五个操作手,五个操作手,第一个操作就是虚拟的输入一个由零字号 s 一连接编号 开一开一哦,容易改成其他的,相应这个标志会也要发生改变,然后呢, s 二也是个系统区域以及这个结束状态。然后呢,第一是纯属接触数据的软元件,其实变好,第一 第一看一下,那么这这里边我们第一一加零,我们设的是第幺六零,我们看第一加零是接收数据,成指的就是接收的这个应该是自结束,自结束啊,我们看可以看 现在接收的字节,八个字节,八个字节,那么接受的这八个字节的数据依次就保存在 d 幺六幺、 d 幺六二、 d 幺六三、 d 幺六四里边啊, 然后呢第二第二就是一个指令结束标志位以及异常完成标志位啊,占用两个位,占用两个位啊,这就是这几个指令,这几个指令 来看,现在是就还是在循环的进行通讯啊,发送 这个自接受,接受自接受啊,这样子, 他每次 发送接收都是八个字结啊,都八个字结,这样子,八个字结,程序就是这样一个流程啊,程序就是这样一个流程, 前面刚才就是说还有一点要说明了,就是说如果连接编号就是这个连接的建立连接的关闭,然后发送数据,接收数据, 它里边这个连接编号啊,我们都要保持一致,都要保持一致啊,如果让我们连接编号,我们改成开二的话,那么相应的这里边 这里边的设置, 他这个连接编号,我们就需要拖,再拖入一个,再拖入一个啊, 比如说再拖一个就是连接变连接变号二了,这样子啊,连接变号 总共可以拖八个啊,总共是八个三四五六 七,当然也可以投入其他这个连接设备,比如说摩托把子 acp 啊,如果投入这个设备的话,那就说,比如说现在前前面七个都是这个 acta 一连接设备,那表明就说 八个连接中有七个连接,前前面七个连接都是 psc 做这个开放式通讯的客户端,如果我们再拖一个摩托把 tcp 连接设备的话, 那么第八个连接就是说 p 二 c, 第八个连接是 p 二 c 做 mbus tcp 服务器呢,这样子啊啊,如果我们脱 如一个这个这个设备或者这个设备的话,那就是 pplc 是做这个开放式通讯的服务器服务器,其他设备做客户端。这样子啊,总共是八个连接啊,总共是八个连接, 总共是八个连接,这是连接一连接一的信息啊,连接一的信息这样子 保存一下 啊,这个就是三菱 fx 五 u, 它座椅开往开放是通讯的客户端啊,有烧烤的编程客户端, 这个视频教程我们就说到这里啊,这个视频教程我们就说到这里,要用到一个手册,就 是这个 fx 五用户首次啊,以太网通讯篇,以太网通讯篇主要是啊, 然后用到这个软件工具,就是一个你探网条入手,当然用这个也可以,用这个也可以啊。 啊,这个事情视频教程我们就说到这里了啊,谢谢大家,谢谢大家啊。

接下来呢我们就来编写我们自定义的处理器,呃,就是写我们自己的一些业务逻辑。呃,这个呢我们需要在这啊,咱们再创建一个类,这个类的名字呢咱们就叫 my channel 啊, channel handle 啊,就是我们的一个通道的一个处理器,它呢需要去做一个继承,继承一个叫 simple simple channel 音泵的 hundred, 就是一个输入的这样的一个 hundred 啊,咱们去继承它, 继承他之后呢,这里面呢需要有一个梵行,这个梵行呢就是指的我们传输那个数据,在这里我们用 batbuff 啊, batbuff, 咱们用这个啊,注意要下面这个就是 nike 包里面的这个啊 batbuff, 然后呢我们去给他, 他去实现啊这个里面的方法,这个里面其实只需要我们实现一个方法,就是这个叫 channel red 零,这个方法呢就是就是指怎么呢?就是指这个客户端, 那客户端发来啊消息,或者说这个数据,或者是这个数据啊啊就会啊执行啊该方法,也就是说在这个里面啊我们就能够拿到客户端所发来的一些数据, 而这个类呢就是我们的自定义的一个处理器。哎,咱们写一下这个就叫什么呢?自定义的业务逻辑的处理器。 好,这个怎么样去做一个配置呢?咱们先去把它配出来啊,咱们需要呢把这个类拷贝一下,然后呢到我们这块就是这个引尼 slayer 这个里面,在这 这个位置呢它有一个叫做引力的 channel 这样的一个方法,在这个方法中呢是有一个参数叫做 socket channel 啊,我们需要拿到这个 socket channel, 然后呢需要拿到这个里面的 paper light, 注意你看 这个 paypal life 是不是就前面我们在 nike 模型中所指的这一块儿啊?对不对?是不是就这个叫 paypalite? 因为我们的这个 handle 会有很多,他会组成一个管道,我们要拿到这个管道,拿到这个管道之后呢,怎么样去把我们自定义的这个 handle 添加进去呢?他会有一个方法叫做 and last, 就把它加到最后面去 new 一个 my channel handle 啊,这个好,这样就可以了,这样的话就把我们自己写的这个业务逻辑的这个 handle 呀,去加入到了这个管道中,一旦 有用户的数据来的话,是不就会执行这个里面的逻辑啊?在这个里面咱们就会啊执行这个方法了。接下来呢,我们就来看一下咱们怎么去接收呢?我们可以看到呢,这个方法上面是不是有两个参数啊? 一个呢叫做 c t x, 那显然这是一个什么上下文吧。第二个参数呢就是叫做 by the buff, 这个呢是一个叫做字节缓冲区的这样的一个对象, 显然呢这个是一个数据啊,就这个消息数据,所以说这个就是我们所需要拿到的客户端所发来的那个数据,我们呢就需要去把它转成一个支付串,怎么转呢?通过一个这个 message to screen, 然后呢给他指定一个编码, 那就要来一个掐 shit util, 来一个 u t f 八,呃,通过 u t f 八去转成一个支付券儿,咱们拿到 一个叫 message str 吧,这个呀就是我们拿到的数据,在这里咱们把它打印出来,叫做接收到啊,接收到客户端发来的消息, 来打印一下,叫 message str 去把它打印出来,好,这个呢我们就打印出来了,打印出来之后呢,我们接下来是不是还需要给客户端一个这个反馈啊?就说收到了 ok, 对不对?这是在这里呢,就需要向 客户端发送消息,那怎么去发呢?我们就要通过这个上下文去发,在这个里面有一个方法叫做 right and plus, 就是去发送这个消息,要注意的是这个消息啊,咱们不能直接这样写, ok, 这是不可以的啊,他虽然不报错,但是不能这么去玩,这是不行的,我们还是需要给他去分装一个 by the buff 这样的一个对象,怎么样去分装呢?在这里我们通过一个类啊,叫做 on point 这样的一个类,有一个 copied buff, 就是去构,通过它呢去构造一个 bad buff 这样的一个对象,给它设置一个值叫 ok, 并且指定它的一个编码,叫来一个 chasett uto, 来个 utf 八,好,通过这样去给它去做一个指定, 这样的话你就会把这个消息呢给他发出去了。好到这里呢,其实我们这个业务逻辑就搞定了,来看一下咱们的那个说明啊,在这个里面呢,我们当时说过是不启动监听四个六这个端口,这个里面是不是搞定了监听,对不对?第二个呢,就是接收到数据之后呢,在控制台把它打印出来, 哎,咱们是不是打印了第三个呢?就是给客户端响应, ok, 那咱们是不是也响应了 ok, 对吧?到这里呢,我们这个案例其实就已经写完了, 接下来咱们就来测试一下,怎么测呢?哎,咱们就可以这样,咱们把这个呢,把它跑起来走,然后呢我们通过一个这个客户端工具啊,就是下面这个客户端工具叫 socket test 这样的一个客户端工具,我们来测试一下,现在他是不是已经启动了。好,那咱们就来打开我们的客户端工具啊, 这个工具呢,在我们今天给大家的资料中啊,有一个这个架包,就叫 socket test 这个架包,然后呢我们双击打开,哎,你可以看到是不就是这样的一个工具啊,我们在这里呢把它作为是一个 canter 去连接本机的这个端口啊,这个端口有点太小了,这个框咱把这个放大一点啊, 这个端口呢就四个六,一二三四啊,四个六。然后呢我们在这点击这个连接啊,去连接一下,哎,你发现他是不是已经连接成功了,对不对?接下来呢我们在这里呢输入一个消息啊,叫什么呢?叫哈喽, 来一个哈喽,点击这个剩的发送走,哎,我们可以看到,你看控制台这一块是不是就呃打印出来了,是不是搜到客户端发来的消息,是不哈喽, 而我们的这个呃服务端啊,在这一块是不是也给客户端发了一个消息回去啊?就 ok, 可以看到在这个位置啊,客户端是不是也收到了这个消息, ok 了, 这就说明呢,我们这个服务端是不是就已经写好了?所以其实我们可以看到啊,通过 nike 去写一个 socket 这个服务端是不是其实还是非常简单的一件事情啊?这个代码 相对啊比较固定,你只需要去写这样的一个类,对吧? handle 这样的一个类,然后呢去编写具体业务逻辑是不就可以了?当然了,这个呢,是一个最简单的这样的一个视力,通过这个代码的形式呢,让大家去体验一下这个 night 啊,到底是怎么回事? 好到这里呢,我们这个案例呢,是不就已经搞定了,最终的效果就按照这个来,对吧?就这样的一个效果。好,关于我们通过 nike 去实现一个 sockey 的服务的一个案例呢,那我们就先讲到这里。


嗯,大家好,今天我们来讲一下三菱 fx 五 u 系列 plc 啊,如何实现这个以探网开放式通讯服务器啊?就是烧烤的编程服务器啊,那么 这个呢,就是一个三菱 fs 五 u 的一个漂 c 实物啊,这个是他的这个自带一台网口自带一台网口, 嗯,他这个自带一台网口是支持同时支持八个连接的啊,那么这个同时支持八个连接是什么意思?打个比方,也就说打个比方,这个平时在做 mobile tcp 服务器,那么 意味着他可以同时最多和八个蒙巴斯 tcp 客户端进行。同学,如果他是做蒙巴斯 tcp 客户, 那么他是可以同时和八个 mbus tcp 服系性通讯的,同样道理,这是八个连接的嘛?那么他做这个骚客的通讯也是打个比,打个比方,他做骚客通讯的这个客户端, 他是也是可以和八个服务器进行通讯,八个服务器进行通讯。那么我们这次要讲的这个控制要求呢,就是说是平时自己做这个烧烤编制服务器,然后以太网调试助手, 以前我调试的时候他是做这个客户端,他是做客户端的啊,做客户端这样子, 然后就说是当以探讨条件时候,连,就是连接上这个 psc 以后呢?连接上 psc 以后呢?然后是以探网条,就是首先是像 这个 psc 发送八个字节的数据,然后 psc 收到这八个字节的数据以后,就保存到自己的内部寄存器里边,然后呢他又会把自己内部的另外四个寄存器的数据转发给以探网调试助手 啊,就如此这么循环,如此这么循环啊,以采光条之后,收到 plc 的这个数据之后呢,紧接着又又给这个 plc 发送这个八个字机的数据啊,就这么循环,这么循环,这就是一个实物 pc 的实物啊,现在这个 pc 已经通过一根网线连接到这个无线路由器上面了,然后我们的这个电脑通过这个无线网卡连到这个无线路由器上面啊啊,这是我们 所要用到的这个硬件,我们所要用到这个软件就是刚才说的这个一探网调试助手啊,一探网调试助手, 嗯,那么接下来我们就说一下这个三连 fs 五优着 p r c 啊,他做这个烧烤的编程,就是做服务器的时候啊,会用到几个比较重要的这个指令啊,比较重要的这个指令, 我们结合程序讲解一下这几个指令啊。首先我们先看一下这个啊,逻辑程序啊, 那么这一段逻辑程序,我们可以看一下这段逻辑程序呢,就是超市化的时候, sm 八零零二啊,他这个是跟三优兼容的这个特殊功能,这个计算器就是上电后就是接通一个扫描周期 商店,说实话我们给这个第零、第一、第二、第三这四个计算器分别付一个抽值,那么这四个计算器抽值分别是零一、二、三啊,这是一段逻辑程序。 然后呢这一段逻辑程序呢,就是说超市化的商店,超市化的时候 s m 八零零二常开点啊,我们给寄存器第第四、第五、第六、第七清零啊,第四复零、第五复零、第六复零、第七复零啊。 然后紧接着下面这一段逻辑程序呢, sm 八零幺四,他是一个一分钟的一个脉冲啊,我们取他的上升言,那么也就是说每一分钟我们 对这个第零、第一、第二、第三我都做一个加一操作, add 啊,做加一操作,这是一段逻辑程序,然后呢这一段逻辑程序啊,这段逻辑程序,这段逻辑程序就是这个 我们判的实时判断,比如说我们判断地灵是否大于六千,如果大于六千的话,打个比方,大二为六零零一,那么这个时候就给地灵清零清零, 好,第一大于六千的时候给第一清零,第二大于六千给第二清零,第三大于六千给第三清零,这就是逻辑程序啊,简单的这个逻辑程序。所以说为什么我们对第零、第一、第二、第三的值,我们为什么每一分钟要做一个加一操作让他改变呢?那主要是为了 方便通讯收发的过程中方便看到数据的变化啊,以求证明这个通讯的正确性啊,以求证明这个通讯的正确性啊。 然后我们说一下,就说这个 prc 做这个以探网开放式通讯服务器的一个设置啊,他是怎么设置的?那么我们来看一下怎么设,就是我选择这个导航啊,这连接目标,然后选择这个导航这个数 竖着目录,然后我们选择里边这个参数,参数里面我们选择这个 fx 五优 cpu, 然后我们再选择这个模块参数。 蒙古三世,我们就是双击这个一台网端口, 哦,那么我们就打开了这个摩托三之后以开往端口这个 基本设置,那么我们要设置的就是 plc 的这里边字节点设置,现在指的就是 plc 的一些 ip 地址啊,子网烟马默认网关这些信息啊,那么 ip ip 地址, plc 的 ip 地址 就是这个会 prc 作为已探网开网是通讯的服务器, ip 地址是幺九二的幺六八点一点 幺六幺,子网烟码是二五五点二,五点二五点零,默认网关是幺九二点幺六八点一点一啊,通讯数据代码二,紧致啊,二紧致。然后这个什么 cc 令可 i e f vc 可设置这个默认不用设置。 蒙了吧, ccb 设置也不用设置也不用设置啊,因为现在是以探网开放的同学啊,然后这个对象 设备连接配置设置啊,这个我们,然后我们点击下面这个详细设置,就会出现这个小按钮,然后我们单击他, 根据他就会出现一个以太网配置,然后括弧内置以太网端口的这个设置,然后这里边我们就拖入了一个这个 这个设备啊,这个设备是在这个以探网设备通用里边投入到这个设备啊,我们把这个设备我们拖入到这里面,你看还可以继续投入啊啊, 连接一,连接二,还可继续投入,连接三,我们这里边就投一个就可以了啊,投入到这个设备的意思是什么? 就是说这个时候 plc 是做服务器的啊, plc 是做服务器的,并且就是说是我们不去支 定这个客户端的 ip 地址和端口号,那么如果就是说是 psa 做服务器,以探望开放式的服务器,并且我们要指定客户端的 ip 地址和端口号,那么我们就要拖入到拖入这个设备啊,就是 full pasle e pass seal 啊, 拖着到这个 i'm past seal, past seal 的话,那就是意思就是说 plc 是做以探网开放式通讯就是烧开的通讯的服务器, 然后呢我们不指定这个客户端的 ip 地址和端口号,如果我们要就是当 plc 做服务器的,一旦我开放式通信服务器的时候,并且要指定客户端的 ip 地址和端口号,那么这个时候我们就要投入一个 fp passy 这个连接设备啊, 那么你再拖入到这个连接设备,那么客户端的 ip 地址和端口号就固定了,那么这个时候就只能是固定 ip 地址和端口号的客户端才能跟这个 prc 进行通讯啊,所以一般情况下我们都是用这个啊啊 pass sif 这个连接设备啊,拖入进行一个的话, 然后这边就会显示这这些信息,好,他自动就是连接一啊,连接一好,然后通讯手段我们就选择是 烧开的烧开的通信啊,协议, tcp 协议, tcp 协议,然后呢这就是 plc 的自己的 ip 地址,前面是 设置过幺九二的幺六八点一点幺六幺装口号,我们这里边 psa 作为服气的装口号,我们设置为四零九六啊,设置为四零九六,然后这里边设备的 ip 地址,也就是客户端的 ip 地上,这边就不用设,因为我们拖入的是这个昂他 c 五这个连接设备,然后呢设置好了以后, 那么也就是说投入一个啊 pass c 五这个连接设备的话,主要是设定一个这个 plc 的端口号以及通讯手段以及通讯手段啊,那么设置好了以后,我们点击这个反应设置并关闭 啊,然后因为我们没有做任何改动吗?没有做任何的,所以如果你做有做改动吗?这个的英语就是可点了啊,然后点一下应用,点一下保存啊,点下保存,那么这个就是 三菱 x 五 u, 他做烧烤腾讯服务器时候的这个变成软件上面这个设置啊,变成软件上面的这个设置,那么这个设置好了以后呢啊, 因为是平时做福气,那么不管是做福气还是做客户团,他要跟客户跟这个对这个远程设备进行一个通讯,那势必会有这个数据的发送与接收,那么数有数据和发送,那么肯定就会牵扯到一个发送指令和接收指令啊, 那么因为现在 plc 是做福气,那么我们这个就还会着重讲一个指令,就是这个指令,我们先讲这个指令,就是 连接信息的读取啊,就是 sp 的 socc inf 啊,这个就一般就是 prc 在做服务器的时候,通过这个指令 sp 的 socc inf, 这个指令可以获取客户端 的一些信息啊,可以获取客户端的一些信息,可以看一下这个指令的用法啊,我们可以看一下 s m 八千常开点啊,长通标志,然后 sd 幺零六八零点零叫上升岩,我们去执行这个指令啊,我们看一下这个指令的这个参数啊, 这个指令操作数有四个啊,一二三四四个。第一个指令,第一个操作数 u, 它是一个虚拟的,那么一般我们就输入一个双引号括起来的一个幽灵这个四幅串啊, 然后呢第二个操作数是 s, 一是连接编号,那么范围自然是一到八,因为前面我们说了 五 u 这款 plc 自带一台网口,他最多就支持八个连接啊,开一到开八这样子,然后 s 二这个三手,我们看一下是什么含义。 s 二这个三手, 他是数据类型,是字占用两个字啊, s 二,那么 s 二加零系统区域啊,这用户不可设定的。 s 二加一就是结束状态, 那么其实状态就是存储完成时的状态,零零零零 h 正常接受,那么零零零零 h 以外就是一场接受,一场接受啊,这是 s 二,然后我们再看第三首,第三首就是存储连接信息的软元件,其实编号啊,这样用五个字,再用五个字,我们看一下,第, 那么 d 加零, d 加一,他就是对象设备的 ip 地址,那么 我们看一下这个 d 门是 d 幺幺八开始, d 幺幺八开始,那么 d 加零就是 d 幺幺八, d 加一就是 d 幺幺九,那么也就说 d 幺幺八幺幺九存储的是这个对象设 ip 地址,那么这个对一向设备 ip 地址这边具体就指的是因为 plc 所服务器,那么就指的是客户端的 ip 地址,那么客户端的 ip 地址呢? 客户端的 ip 地址呢?我们这里是以天网调试助手做这个客户端啊,以天网调试助手做客户端,那么以天网调试助手,他的 ip 地址呢?其实就是本台电脑的 ip 地址,其实也就是幺九二的幺六八点一点七一这样子啊,然后呢 b 加二 就是对象设备端口编号,那么也就是客户端的这个端口号,客户端的端口号。 d 加三就是本站端口编号,就指了 pc 的端口号, pc 的端口号,然后 d 加四就是使用用头的设置区域啊,是占用一个字,包括通讯方式是 tcpip 还是 udtip, 这里面是 tcp, 然后是呃,这个烧给通讯功能有无顺序啊?以无顺序啊,无顺序开放方式 到底是哪种方式啊?天皇上,我们其实我们设置的是按他室友这种啊,就说是 plc 做服务器,然后不指定客户端的 ip 地址和端口号,那么也就说任意 ip 地址和端口号,只要是在同一局域网都可都可以去连接 plc 都可以连接 plc 啊, 这就是连接信息的抖曲啊。我们看一下这个质量啊,我们也就是说在 sd 幺零六八零点零上升严的时候,我们去直行这个质量。 sd 幺零六八零为一的话,表明是 这个时候就是 prc 做服务器,然后一台网调试助手,他做客户端,一台网调助手已经成 成功连接到了 prc 啊,那么这个时候 sd 幺零六八零点零就会由零变成一,那么这个时候我们就用 sd 幺零六八零点零的上升岩去执行这个,这个指令就是 sp 的 socci nf 这个指令啊,用来获取客户端的一些信息,用来获取客户端的一些信息啊,那么就保存到这个 d 幺幺八开始的寄存器里边,他这个 d 三手总共占用五个字,那就是 d 幺幺八幺幺九 幺二零幺二幺幺二二啊,那么其中呢?这个幺幺八幺幺九是客户段的 ip 地址啊, 幺二零是这个客户端的端口号,幺二幺是 pic 的端口号,然后幺二二就是使用 用同设置区域,那这个具体就要看每一位的含义,每一位的含义啊,就这个意思, 然后呢这里边我们再看一下,就说当连接成功将,当客户端连接成功以后呢, 那么这个 sd 幺零六八零点零就会唯一,那么我们用他的上升言去智慧 m 幺二幺,那么智慧 m 幺二幺,那么这个 m 幺幺二幺我们就可以用来去驱动发送接收,这个就是一个发送接收标志为具体含义,我们下面讲啊,那么如果 以探网调试助手作为客户端,他如果断开了与 prc 的连接,那么这个时候 sd 幺零六八零点零他就会由一变为零,那么这个时候就说当连接断开以后,我们就采集 sd 幺零六八零的下降点, 用这个下降来去复位一些,抖写标志位啊,发送接收标志位,幺二零幺二幺幺二二啊, 就是这段程序的含义啊,那么我们可以看一下 plc 程序啊,下面我们说了,当客户端以三网条就是 成功连接到 psc 以后呢, sd 幺零六八零的上升岩会把 m 幺二幺置位,那么看一下 m 幺二幺置位以后会去执行什么操作, m 幺二幺只置位以后呢,他会去就是 ps 这个,那么这个时候 pc 作为服务器就处于一个等待接收这样一个状态, 因为 m 幺二二之位以后呢,他就是会去执行这个 sp 的 soc rcv 指令啊,那么我们就看一下这个讲解一下这个 sp 的 soc rcv 指令啊。 sp 的 soc rcv 指令接收数据的 n 的处理是抖取啊,那这个指令它是有一二三四五五个操作数,那么第一个操作数有虚拟的,那么一般我们处理就是输输入一个双引号过去的幽灵子符券, 然后呢,这个 s 一就是连接编号,然后翻译就是一到八了,那么这里边我们就指定的是看一看一啊,然后 s 二就是指定控制数据的软件键,其实编号占用两个字啊,我们这里设置的是 d 幺幺四,看一下 s 二的含义, s 二 s 二加零是系统区域啊,用户不可设定。 s 二加一是结束状态,也是指头的,是系统设置的,用户不可设定。那么结束状态零零零 h 正常结束以外就是异常结束啊, 这就是 s 二,然后第一啊,第一就是纯手接收数据的软原件起始编号啊,看下第一的含义,第一, 那么第一加零就是接收数据的长,这里边指的是字结束,你看分手从从 sox 通信接收数据区域读取的数据的数据长度啊,这里边指的是字结束,打个比方,你太网桥肉肉给 plc 发送了八个字节, 八个字结,那么这里边这个 d 幺六零他就会为八,那么一是一次接收的八个字节的这个数据有一次保存在这个 d 幺六幺,第幺六二,第幺六三,第 幺六四,也就是这里边的第加一、第加二、第加第加三,第加四,嗯,他这个含义就是接收数据嘛,接收数据啊, 这就是第一三手操作手啊,然后我们再看下第二操作手,第二操作就是指令结束执行完成的一个标志以及异常完成的一个标志位啊,那么也就什么意思?也就是说当这个指令就是 sp 的 socscv 指令结束完成之后呢? 那么这个第二加零就会为一啊,如果正确接受完成的话,那么第二加一就是为零。一场完成的话,第二加一就会为一啊,就这个含义就是这个意思, 就这个这就是接收质量,然后我们分一下这个接收质量啊,那么就是说 m 幺二幺为一的时候,并并且这个时候连接是成功的,那么 sd 幺零六八零点零就是唯一啊。当 骚客的接收区有数据的话,那么这个时候接收完成 sd 幺零六八二点零九一,然后呢这个 这个指令他的执行完成标志位 m 幺幺六此刻肯定是为零的,因为这个指令还没有执行,那么 m 幺幺六肯定是为零,然后这个然后前面想想满足的情况下,就会去执行这个 sp 点 soc suv 指令啊,那么指令执行完成之后呢? m 幺幺六就会置位,前面条件就断开了, m 幺幺六置位的话,我们这个就取置位 m 幺二零 么幺 m 幺二零其实就是一个发送数据的一个延时标志位啊,我们前后面会去讲,然后复位 m 幺二幺,就把接收标志位给他清零了哈,然后我们就会具体判断,当这个指令的这个异常标志位为零, 表明没有错误,那么没有错误的时候,我们就进行一个数据的转存,那么转存,首先我们把 d 幺六零我送给 d 幺幺六,这就是接收的这个字结束,接收的字结束,然后呢具体接收的这个数据八个自己的数据,也就是四个字的数据,我们 就原始数据依次保存在第幺六幺幺六二幺六三幺六四,我们依次进行转存,转成到第四、第五、第六、第七,那么也就是说以太网条入手,他发送给 pic 八个字结数据,四个字的数据最终是保存在 prc 的第四、第五、第六、第七里边啊,这里边, 然后没有错过的情况下, m 幺幺七是为零,那么我们这个事就把正确完成标志为 m 幺幺幺八, 异常完成标志位幺幺九复位。如果 m 幺七为一,表明是异常完成,那么这个时候我们就把异常标志位幺幺九之位 正常完成标志为 m 幺幺八复位啊,这就是一个结束的接收数据的一个过程啊,这就是一个接收数据的过程。那么 plc 接收数据完成之后呢?前面我们说了,会把 m 幺二零至位 m 幺二幺复位, 这个时候就不再接收了,那么 m 幺二零之位不要再过去执行什么呢? m 幺二零之位就程序就走到这里了, m 幺二零之位以后呢,就延时, 延时一百毫秒,延时一百毫秒,时间到达以后,我会把 m 幺二二支位, m 幺二二支位以后呢,我们再复位 m 幺二零啊,那么 m 幺二二支位以后呢? 程序就走到这一段了,就去执行这个发送数据,就是这个指令 sp 的 soc snd 指令啊,然后我们看一下首字,讲解一下这个指令。 数据发送就是 sp 的 soc snd 指令,那么这个指令呢?它是有五个操作数啊,五个操作数,那么这个指令呢?操作数第一个操作是 u 啊, 前面讲的是一样,他就是输入一个双引号括起的一个字符串幽灵这样子虚拟,然后 s 一是连接编号啊,一到八,这里边我们设的是一,设的是一,然后 s 二是这个 呃,指定控制数据的软件,其实编号啊,请参考控制数据,我们看一下 s 二的含义。 s 二加零是系统区域啊,用户不可设定。 s 二 加一是结束状态,是指头的,因为是系统设定,对我们用户来说就是指头的,我们这里面设的是 d 幺幺二,就占用 d 幺幺二, d 幺幺三,这样子啊, s 二 s 三是存储发送数据的软元件,其实编号啊,数据类型是字啊,那么看一下 s 三含义, s 三,那么 s 三这里面 s 三层,我们设置 d 幺三零,那么也就是说 s 三加零就是 d 幺三零,那么也就说 d 幺三零名存的是发送的数据长,这里边指的就是你要发送的这个字,结束要发送的字,结束啊, 我们这里边我们幺三零,我们设的是八,设的是八,那么那么也就说当 prc 作为福气时,发送给以参考条助手是发送八个字节的 数据,发送八个字节数据啊,那么他依次保存的数据就保存在这,要发送的数据就保存在 s 三加一, s 三加二, s 三加三, s 三加四,占用四个字,那么依次对应的就是 d 幺三幺幺三二幺三三幺三四 啊,这就是发送区数据,那么原始我们要发送的数据就是第零、第一、第二、第三,所以我们要把第零第一、第二、第三 啊,传送到第幺三幺、第幺三二、第幺三三、第幺三四啊,并且我们要做一个高低八位互换,就主要是为了接收发送数据,这个持续问题啊,持续问题,这样子, 嗯,然后这个指令的这个另外一个三手 d 就是指令结束啊,指令结束这个标志位已经 以及这个异常完成标志位,他是收集类型,是位是位,然后是占用两个,两个位,两个位,这里面我设的是 m 幺幺二,那么 m 幺幺二就是指令完成标志位, m 幺幺三就是指令异常标志位啊, 这就是这个指令的讲解。我们来现在分享这个发送啊,是怎么发送的?延安木幺二零啊,延时以后 m 幺二二支位支位用上升严,然后这个时候发送指令的这个结束标志位 肯定是为零的,为零的。然后呢,连接状态 sd 幺零六八零点零肯定是唯一,那么这个时候就开始发送了,首先是填写这个发送的字结束,那么就我们发送八个字结,那么就给 d 幺三零, d 幺三零,我们付一个八,然后依次把药发送的数据填写到发送区域里边,第零,第一、第二、第三这样子, 然后去执行这个 sp 的 soc snd 指令啊,那指令执行完成之后呢啊, m 幺幺二就会支位 m 幺幺二支位之后呢?我们这个是就赛塔 m 幺二幺,赛塔 m 幺二幺,就又会转到, 就会转到去接收数据,接收数据啊啊,然后我们复位 m 幺二,这个复位 m 幺二, 那么就说 m 幺幺三就是一个指定异常标志位了,那么 m 幺三为零的话,指定就是正常结束,那么你就把正常结束标志为幺幺四, m 幺四之位, m 幺幺五就是异常标志位给他复位。如果 m 幺三这个异常标志为一,表明是异常接受,那么这个时候就把异常标志 位 m 幺五之位,正常标志位 m 幺四复位啊,这就是发送收据。然后前面说了,就是发送完成之后呢,我们会把 m 幺二幺置位, m 幺二幺置位,就又转到程序,又转到这个 接收了,又转到接收了,这样子啊,又转到接收了,就如此这般的循环,如此这般的循环啊,那么前面也说了,就是说, 呃,当客户端断开了,这个客户端断开与 pic 的连接,那么这个时候 sd 幺零六八零点零就会产生一个下降炎, 产生于下降炎的时候,我们这个时候就把 m 幺二零幺二幺幺二给他复位,给他复位,那么这个时候就不会去 psc 做服务,作为服务器就不会去执行这个发送已接收这样的操作 啊。等到这个客户端又重新和 prc 连接成功以后,那么这个时候我们就采集这个 sd 幺零六八零的上升眼啊,这个时候就把 m 幺二幺给他去置位, m 幺二幺置位呢,就又会转到这个 这个执行这个接收数据这段程序了,然后如此循环啊,然后如此循环,这就程序大是这样一个走态过程啊。然后呢,我们现在把这个程序下载到 parc 里边啊,下载 parc 里面,我先连接一下 parc, 看能不能连接的上啊 啊,其他连接方法我们不是直连的,因为我们是通过路由器啊,通过路由器这样子 啊,已成功与 fx 五 ucpu 连接。 确定。然后呢,点击在线下拉菜单中选择这个写肉质可编程控制器啊,然后全选全选,然后点击这个执行,点击试选,就是点击这个全部试, 然后现在就开始下载程序啊,确定好,下载完成了,下载完成了,下载完成之后呢,我们这个时候最好给 pic 断一次电啊,给 pic 断一次电, 然后我们再给 psc 上电啊,再次上电,上电之后呢,然后这个时候呢,我们就监视屏程序啊监选择,就是 在线下拉菜单中的监视,里边的监视开始全窗口,这样子啊,那么这个时候我们可以看一下这个,现在幺二零幺二幺幺二,都是负一状态啊,都是负一状态。那么这个时候我们打开以太网调试助手啊,打开以太网调试助手, 然后嘛以开网调试助手啊,以开网调试助手,我们就作为这个客户端去连接 pic, 那么协议例行我们就选客客户端了,然后服务器的 ip 地址就知道 pic 的 ip 地址,幺九二的幺六八点幺六幺,就这个幺六幺, 然后 prc 的端口号,福气端口号就是指的 pic 端口号,就是我们这里边设定的,这个 就是这里边 可变成控制器的张口四零九六啊,四零九六,是的是四零九六,嗯,四零九六,然后我们 进行一个连接,连接好,连接成功了,连接成功了啊,连接成功了,这个时候我们可以看一下,这个时候 m 幺二幺就已经被支位了,那么证明这个 sd 幺零零八零点零,他是产生了一个上升炎信号,由零变成一了啊,就能变成一了,所以 m 幺二幺就会被支位。 m 幺二幺被支位的时候,那么这个时候他就转到等待接收,等待接收了啊, 当于接收的话,这个 sd 幺零六八二点零就会有一啊,那么这个时候我们以采访调试作为这个客户端,首先就给这个可以 给 pic 进行数据的一个发送啊,换八个字结,一一二二三三四四五五六六七七八八。然后我们点击发送 好,同时我们会收到 psa 发送过来的收据,那么也就是说证明是什么?首先你太网条,这时候他发送给 pscpsc, 接收到以后,接收完成之后呢? psc, 然后就马上又给你太网条,就是发送收据。那么 实际上 plc 发送个已开放的数据,实际上就是第零第一、第二、第三的数据,我现在可以看一下第零第一、第二三数据,第零第一 啊,现在又变成三四五六了啊,我们再次发送啊,三四五六,底料的直线是三 三四五六,这样子啊,这样子,同志,现在我们可以观察一下第四、第五、第六、第七的值,一二二三三四四五五六六七七八八十六进制的啊,就这样十六进制的,这样子 啊,只要以探讨条就是停止发送,那么这个时候 m 幺二幺肯定是唯一的, plc 始终就是处于一个等待接收这样一个状态啊。 那么前面我们说了,就说是 sd 幺零六八零点零上升下来时,我们会执行这个 sp 的 soc cnf 这个指令,用来获取客户端的一些信息啊, 来获取客户端的一些信息。那么我们这个时候就可以啊,监控一下,看看一下信息啊,我们可以看一下 d 加零,就是 d d 幺幺八,那么监控一下这个啊,监控一下 d 幺幺八, d 幺幺八 被限制, 那么我们可以看一下啊, d 幺幺八就是 s 二加零,呃,就是 d 加零幺幺九,就是 d 加一,这个就指的是客户端的 ip 地址啊,客户端的 ip 地址, 他这边显示是有符号啊,有符号的。然后呢,这个第 加二,也就是 d 幺二零,是对向设备的端口编号,也就是客户端的端口号,客户端的端口号,现在是这个 负的幺五六三七啊,这个应该转换为这个 应该转换为这个无符号啊,转换为负无符号。看怎么转换啊, 我都忘了啊,我都忘了, 都忘了, 我都忘了啊,反正就是就是这个意思。然后这个 d 幺二幺,我们看一下 d 幺二幺,就是这个 d 加三, d 加三就是 plc 的转个号四零九六四零九六啊,然后呢,这个 d 加四就是使用用途设置区域啊, 就直接信息啊,就直接信息 一加三,这要先写 这是他十六个位的状态,我们可以对比这个 b 零到 b 十五啊,做一个分析,做一个分析,比如说他的这个这个 b 八位啊, b 八位,他指的是通信方式是 tcp 还是邮递? p, 那我们呢,可以看一下啊, 他是为,他是为为零的啊, b 八是为零,那就是 tcp 啊,通讯方式就是 tcp, 正好就是 tcp, 有没有设的就是 tcp, 然后 b 九 b 九,他是骚客的通讯功能有无顺序啊?默认是无顺序,应该是,应该是 唯一的,那么逼酒,我们看一下,逼酒就是唯一,那唯一就是无顺序啊,无顺序这样子。然后呢,这个 b 十四, b 十五, b 十四, b 十五,它是一个开放方式啊,我们去设的是这个按 past seal 这种方式,这种方式就是 prc 做服务器,然后这个 这是做福气,然后就这个就说不指定客户端的 ip 和 ip 地址和端口号,那么 b 十五和 b 十四应该就是一个一零的啊,应该是一个一零,来看一下 啊,没错的一零啊,一零没错的啊,剩下的一些信息大家可以自己对照看一下啊,对照看一下,这是 信息的抖取啊,信息的抖取, 然后这是我们点击发送啊,点击发送 我们可以看一下这个,这个时候第零、第一、第二、第三的值是发在发生变化,因为前面我们这个逻辑程序里边我们有讲过,我们是每一分钟对这个第零、第一、第二、第三的值是做一个加一操作,是做一个加一操作啊,这样子 做个加一操作好,我们可以循环发送啊,循环发送 情况发送,那么这个时候我们可比如说接收的话,我们就可以观察一下这个信息,那么这个 d 幺六零里面他保存的去接收自结束,那么可以看一下 d 幺六 里面,现在就是八接受了八个自己的数据,八个自己的数据一二三四五六七八,八个自己的数据, 那么原他首先会保存在第幺六幺幺六二幺六三幺六四里边,然后我们进行个转传,我们转传到这个 第四、第五、第六、第七里边啊,那么总体来说这个程序功能就是说是呃, pic 作为 以探网开放时通讯的服务器,以探网调试的时候做客户端,然后呢以探网调试的时候,首先给 pic 发送八个自己的数据,发送这八个自己的数据, pic 接收到了以后保存 保存在计程器第四、第五、第六、第七里边,然后 pic 接送完成之后呢会发送 pic 会把自己计成器 第一、第二、第三的值发送给仪态网调试助手,然后仪态网调试助手说到说句以后,再次给这个 pc 发送,就如此这么循环啊,如此这么循环。同时我们可以通过这个 fc inf 这个指令获取到客户端的一些信息,包括这个 客户端的 ip 地址,客户端 ip 地址呢就保存在 d 幺幺八, d 幺幺九, d 幺幺八幺幺九。因为是这么设置的,这个 d 幺幺八幺幺九。然后这个客户端的这个装口号就保存在客户端的装口号就保存在 d 幺幺九。哎呀,幺二零幺幺八幺九幺二零。 然后幺二幺就保存的是 plc 的断扣四零九六四零九六,这样子啊, 那我说这个时候,以前我调入住的端口号是四九四九八九九啊,四九八九九。这个怎么切换到无符号?我还不会啊,我还是真不会啊。 那么我们可以看一下这个负的幺五六三七,好像是吧?负的幺五六三七,我看一下啊,负的幺五六三七。负的幺五六三七啊,负的 幺五六三七是个什么鬼啊? 幺五六三七, 负的幺五六三七啊。 c r e b 是不是 c r e b。 那么看一下 c r e b 是个是,是个石榴精致的 c r e b 是啥? c r e b cr e b 四九八九九四九八九九啊,四九八九九。 正好就是这个客户端的端口号,客户端的端口号没错的啊,没错的。然后这个再看一下客户端的 ip 地址啊,客户端的 ip 地址,他这个是什么?幺幺八是三二七, 三二七啊,我看一下三二七是个什么鬼啊?三二七,他使劲就是三二七啊,三二七, 三二七,那么石头形式就是一个三二七,看下是不是三二七啊? 没错,是三万七,三万七,然后十六进日是幺四七幺四七, 他应应该就是两个字啊,两个字组成的,这个 ip 地址的四段啊, ip 地址的四段,这样子 幺幺八,他是三二七,这种保证是这 个保存的是这个 客户端的 ip 地址啊,客户端的 ip 地址看一下,那么这个七十一我们可以看一下七十一啊,他最末端的 ip 七十一, 七十一,我换算为十六进制就是四七四七,然后刚才是幺四七啊,幺四七,然后这个一换算为十六进制还是一, 那就明白是什么意思了啊。那么这个三二七我看一下,十进制的三二七,他换成为十六进制 清零三二七,换到十六进去就是幺四七幺四七啊,其中这个四七四七,你把十 六进制的四七啊,十六进制的四七,你换算为十进制就是七十一就是七十一 啊,然后十六进制的零幺,你换算为十进制就是一啊,正好就是 ip 地址四段,后面两段啊,后面两段,然后这个负的幺六二,负的幺六二幺六啊,再看一下负的 使劲,使劲是幺六二幺六二幺六啊,幺六二幺六啊,负的幺六二幺六, 划算为十六进制就是 c 零 a a 八, c 零 a 八啊,那么 c 零十六进制的 c 零,我看看就是幺九二,换算十进十幺九二 a 八 a 八啊,那么 a 八十六进制的 a 八就是十进去幺幺六八,那么就是幺九二的幺六八点一点。 其一就是客户端的端口号啊,就是这么来的,这么来的 啊,现在还在循环发送啊,这就发送的这个自接受,接受的自接受啊,看发送多少,接收多少啊。那么我们现在再复习一下这个整个 ps 一,实现以上开放式通讯,服气的过程啊,服气的过程, 那么第一步就是设置这个乙胎网端口啊,设置乙胎网端口,那么就是选中导航里边的这个参数 里边的 fx5ucpu, 然后选择模块三数里边的仪态网端口,双击打开这个仪态网端口, 那么首先第一遍我们设置的是 pic 的 ip 地址啊, pic ip 地址设置为幺九二点幺六八点一点幺六幺子网烟网烟马二五点二五点二五点零,默认网关幺九二点幺六八点一点一, 统一数据代码定制。然后接下来就设置这个对象设备连接配置设置啊,点击这个,选中以后点击这个 啊,然后呢就是从这个以探网设备,以探网通用设备里面拖进来一个这个按 passy 连接设备,按 passy 连接设备投入这个连接设备的意思是什么 意思呢?拖进来拖这个设备的意思就是说这个时候 prc 是作为以探望开放式通讯的服务器,并且啊不指定这个客户端的 ip 地址和端口号,那么也就是说和 prc 处在同一个局域网之内的任意一个设备都可以作为客户端去连接 prc, 这就是投入一个这个,嗯, poss c 有连接设备的含义啊,如果你要指定一个唯一的一个客户端 ip 地址和端口固定的一个这个 去连接 pic 的话,那么我们就要投入这个 fu pass c o 这个连接设备,你投入到这个连接设备的话,我们可以看一下,那么这个时候就需要不仅要指定可编程控制器的这个 c 的通过后,还要指定这个设备的这个 ip 地址和端口号了,但是 按 plus c 五是不用指定的啊,这就是这两者的区别,这两个共同点就是说这里你投入这两个设备的话, plc 都是做服务器的。区别就是说按 plus c 五是不用指定客户端的 ip 地址和端口号。 付 past 是需要是需要这个指定 ps 的,这个是需要指定客户端的 ip 地址和端个号的啊,这样子,如果你拖入的是这个 s c t i v e 这个连接设备,那么这个时候平时就是作为你看我开复的通讯所有的通讯的这个 客户端了客户端了啊,如果投入的是这个摩托 pass tctcp 连接设备,那么这个时候评论 c 是做 我把 ccb 服务器的啊,这样,如果你要做邮递批的同学,那么就要拖入这个设备,拖入这个设备啊,总共,反正你不管是拖什么设备,总共是支持八个连接设备啊,八个连接一二,这样子, 那么一般情况下我们就是大多是用的是这个 i'm passive i'm passive 这连接设备,这一般不用啊,一般不用啊,这个步骤设置完成之后呢? 这个步骤使者定格好了以后呢?啊啊,我们会就是点击这个反应设置并关闭啊,一定反应设置并关闭,这样子啊,反应设置并关闭这个步骤是必须的, 然后走到这里会点击应用,点击应用后,然后我们点击一下保存,点击下保存,这样子啊,然后呢剩下 编程啊,编程的话,那么使用我们可以使用这个 sp 的 soccnf 这个指令来获取客户端的一些这个信息, 那可以获取到客户端的 ip 地址,客户端的端口号,以及这个扫给通讯的一些相关作证通讯方式了,扫给通讯功能这个顺序有 以及开放方式,开放方式就说指的是啊,那么到底这个 plc 是做客户端呢?还是做服务器?那么做服务器到底是指定不指定客户端的 ip 地址和段位号啊?就这些信息啊,这些信息, 那么也就说做做服务器,那么这一步是可有可无的,就是获取连接信息这一步骤是可有可无的啊,那么就是 做服务器客户团连接上以后呢,那么这个时候就会牵涉到一个数据的发送与接收,那么数据发送呢? poc 数据发送,我们就用这个 sp 的 socsnd 质量进行数据的发送啊, 进行数据的发送,那么进行数据发送,他这个指令就是前置的五个操作数,第一个是这个虚拟的,我们就输入一个自负券幽灵啊,然后连接编号,然后这个系统区域的设置以及发送区域的一个设置啊,发送区域的设置主要是这个发送区域的设置这个参数啊,那么第一个这个这个参数,那么 我从第幺三零开始,那么第幺三零里面保存就是我们要发送的字结束,那我们要发送数据就从第幺三幺开始啊, 以字结为单位啊,那么这个三是我们以 m 幺幺二开始,那么 m 幺二就是一个指令完成标志位,那么 m 幺幺三就是 是一个异常标志位啊,占有两个位,这就是数据的发送,然后数据的接收,我们就用 sp 的 socrcv 指令,这样子啊,也是五个操作术,第一个操作术虚拟的,一般我们就输入一个双引,双引号括体的一个幽灵字符串, 点击编号一到八,这里面是用凯一,凯一这样子,然后这个是系统区域设置啊,占用两个字,然后这个是接收区域的设置啊,那么我们这里边设的第一个字是第幺六零,那么接收的字接受就保存在第幺六零,那么接收的这个数据就从第幺六幺开始啊,以字结为单位, 然后这个这个三首 m 幺幺六就是指令完成标志位,那么 m 幺幺七就是指令异常标志位啊,这有两个位,这个就是数据的这个解说数据 结束啊,那么编程完成之后呢?编程完之后呢?然后就把程序就是程序下载到 pc 里边, 下载的 ps 里边啊,下载 ps 以后呢?然后呢?一般情况下我们就给 psc 断一次电,然后再上电,那么这个时候我们再打开这个以探网调试助手啊, 打开以太网调试助手啊,然后我们就设置这个以太网调试助手的协议类型,以太网协议类型无非就是 tcp 这个客户端或者服务器,或者有有 dp, 我设置客户端,然后服务器 ip 地址就填写的是 plc 的 ip 地址幺九二点幺六八点一点幺六幺,然后我们这个在设置 plc 端口号四零九六,然后我们进行连接,连接成功之后呢,那么这个时候我们一开往条住手,就可以给 plc 发送数据 据了,那么以探网发送完成之后, plc 收到数据以后,就又又会给以探网条,就是返回八个字节的数据啊,返回的八个字节数据其实就是 plc 这个第零、第一、第二、第三的收据啊,那么你弹簧条右手发送给 pic 的收据就展成至 pic 的第四、第五、第六、第七这几个计算机里边啊, 就是这样一个过程,这个过程那么我们可以演示一下,就是现在可以再演示一下,就说是断开连接时候的这个,那么当断开连接的时候,我们前面我们说了,就说 程序里面会采集 sd 幺零六八零点零的下降盐,并且会把一些书发发送接收标志位给他清零啊,那么现在是 m 幺二幺是支位的,是等待接收,那么这个时候我们断开连接,可以看到现在这 这个时候幺二零幺二幺幺二已经全部被复位了啊,已经全部被复位了,那么这个时候 prc 就作为这个以探望开放式通讯的服务器, 他就处于一个等待客户端连接的这样一个状态,当连接成功时候,我们就采集 sd 幺零零八零的零的上升岩,就会把 m 幺二幺智慧又处于一个等待接收这样一个状态啊, 那我们可以再次进行连接,但是这里边有一个问题,就是说断开连接跟下一次再次连接的话, 这之间最好是有一个时间的间隔啊,最好是有一个时间的间隔,这样的话就不至于会发生一些通讯错误,这样子,连接错误啊,我们进行连接啊, 啊,连接成功了,连接成功了,点击发送啊,又发送数据了,这样子 啊,我们发送的快,我们就可以看到这个 m 幺二幺幺二零幺二二,就会发生一个这个交替,这个职位复位这样一个状态啊,这样子 啊,发送六六零八个字,接,接收六六零八个字,接啊,会发送八个,接收八个,发送十六,接收十六个,就这样一个过程啊。 好了,这个就是三菱 fx 五 u 这个 prc 啊,他做以探网开放通信服务器,就烧开特通信服务器这样一个视频教程啊,我们就说到这里了啊,就说到这里了啊,这边就是用到一个以探网条助手, 实际上用到的这款电话调试也可以啊,这个,这个都可以的啊,都可以的。好了啊,谢谢大家啊,谢谢大家。