php对plc的TCP通信,smart200PLC TCP通讯

编程方法: OUC指令库

点击库,选择开放式用户通讯

a6e2159d864c9183c0f2250eee48b375.png

要求: 通讯双方均要调用指令

通讯数据量 :1024字节

程序模块详解:

TCP_CONNECT(建立连接指令):

EN:使能端,接SM0.0;

Req:启用连接操作,一般加上升沿;

Active:设置本都CPU在通讯中的角色,作为主动方(为1)还是被动方(为0);

ConnID:CPU使用的连接ID(标识连接),(Word类型),范围为0~65534;

IPaddr1~4:另外一方的IP地址。 192.168.0.101 分别对应1 ~ 4;

RemPort:远程设备的端口号,范围为1~49151,建议采用2000 ~ 5000;

LocPort:本地设备的端口号,范围为1~49151;

Done:完成位,执行完成无错时置一;

Busy:正在执行这个操作时置一;

Error:连接操作发生错误为一;

Status:错误代码。

TCP_SEND(发送指令):

EN:使能端,接SM0.0;

Req:启动发送操作,可用SM0.5+上升沿(每隔0.5s发一次);

ConnID:和主动方一样,对应起来;

Datalen:发送多少个字节,范围为1~1024个字节;

DataPtr:要发送数据的起始地址,如要发送VB0开始的8个字节,则设为&VB0;

Done:完成位,执行完成无错时置一;

Busy:正在执行这个操作时置一;

Error:连接操作发生错误为一;

Status:错误代码。

TCP_RECV(接收指令):

EN:使能端,接SM0.0;

ConnID:和被动方一样,对应起来;

MaxLen:要接受的最大字节数,和DataLen保持一致;

DataPtr:接收来自发送方数据的起始地址,如要发送VB100开始的8个字节,则设为&VB100;

Done:完成位,执行完成无错时置一;

Busy:正在执行这个操作时置一;

Error:连接操作发生错误为一;

Status:错误代码;

Length:实际接受的字节数。

下载程序过程:

①设置本地CPU的IP地址(主动方/被动方都要设置):

fde7b4d41d68ed47e3a9d812a64274b2.png

②因为我们用了库里面的指令,所以我们右击程序块,选择库存储器,随便设个数即可:

b60a37ce0cba6f78f516ffac32035f18.png

主动方程序:

8b755e0a305fd1ea4d86881161de351d.png

eadf09312cb14f3575d45cc79920425c.png

被动方程序:

注意:

①被动方一直要接受数据,所以需要Req保持置一;

②ConnID不能和主动方相同;

③RemPort和LocPort要互换;

④TCP_CONNECT指令的右边四位和主动方保持一致;

e1b5fa3348b20c1e10bba01ec8d1357e.png

e44bf63ed84bb999ded4537aa33aaf98.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值