三菱FX5U内置高速计数器

7 篇文章 0 订阅
本文详细介绍了如何设置FX5UPLC内置的高速计数器,包括打开高速I/O组态窗口,配置计数器参数,设置比较表,调整输入输出响应时间,并提供了相应的程序编写步骤,如启用计数器通道,读取当前值,以及执行比较和复位操作。
摘要由CSDN通过智能技术生成

目录

FX5U内置高速计数器

高速计数器参数设置

高速计数器程序编写

FX5U内置高速计数器

高速计数器参数设置

第一步:打开高速I/O组态窗口

[参数]——[FX5UCPU]——[模块参数]——[高速I/O];

第二步:高速计数器设置

双击[详细设置]

第三步:[基本设置]里作参数设置

  • [使用]高速计数器
  • 脉冲输入模式:根据使用进行选择。
  • 预置输入:根据使用选择启用,并作参数设置。

 占用输入(X)说明,确认占用的输入点位。

 

第四步:高速比较表设置

  • 设定计数器CH为CH1并为通道1
  • 设定输出目标软元件为M10(此值不固定)
  • 设定比较值1,为2000(此值不固定)

通过此设定当高速计数器的值为2000时,M10会变为ON,点击确认按钮,再点击应用按钮。

此时会跳出弹窗,说明:高速计数器上的输出响应时间应该设定再1ms以内。点击[是];

 此时会弹出以下窗口

 

第五步:输入输出响应时间设置

可在[参数]——[FX5UCPU]——[模块参数]——[输入输出响应时间]处作设置。

把X0时间设置成0.1ms,点击应用,会发现输入确认弹窗的黄色显示消失。

然后关闭模块参数窗口,打开程序窗口,进行程序编写。

高速计数器程序编写

第一步:启用高速计数器通道

添加常开触点SM400(注释:SM400是PLC运行时始终为NO的特殊继电器)

在部件选择窗口中选择高速计数器专用指令HIOEN;

  • S1开始/停止的功能编号;
  • S2设置已启用功能的通道编号的位;
  • S3设置已停止功能的通道编号的位;

指令HIOEN功能编号介绍

这里S1设为K1、S2为H1、S3为H0,为打开第一个通道的高速计数器。

第二步:打开高速通道比较表

同样,添加指令HIOEN;这里S1设为K20、S2为H1、S3为H0,为打开第一个通道的高速比较表。

此时当计数器等于2000时M10会输出转换后写入到PLC(高速比较表的参数设置)

第三步:高速当前值读取传送

选择DHCMOV指令

  • s传送源的软元件编号
  • d传送目标软元件编号
  • n传送后,显示的传送源软元件的清除提示(范围K0/K1)

这里s设为K20、d为SD4500(高速计数器对应的特殊存储器)、n为K0,在SD4500存储器处可看到由高速比较表传送的当前计数。

第四步:计数比较复位

通过设定值为2000时,M10会变为ON,来触发复位计数。

第五步:比较置位指令

  • s1设定比较的数据
  • s2当前数据
  • d输出置(ON)的位软元件

当计数达到500时Y10置1

第六步:比较复位指令

  • s1设定比较的数据
  • s2当前数据
  • d输出复位的位软元件

当计数达到1000时Y10复位

第七步:区间比较指令

  • s1设定比较的下限数据
  • s2设定比较的上限数据
  • s3当前数据
  • d输出的位软元件

计数小于500时Y10为1,大于500小于1000时Y11为1,大于1000时Y12为1。

 

在Java中,可以使用多线程或异步请求来同时发送多个HTTP请求。以下是使用多线程的示例代码: ```java import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; public class MultiThreadedHttpRequest { public static void main(String[] args) throws IOException { String[] urls = {"http://www.example.com/page1", "http://www.example.com/page2", "http://www.example.com/page3"}; for (String url : urls) { Thread thread = new Thread(() -> { try { URL urlObj = new URL(url); HttpURLConnection con = (HttpURLConnection) urlObj.openConnection(); con.setRequestMethod("GET"); int responseCode = con.getResponseCode(); System.out.println("Response code for " + url + " is " + responseCode); } catch (IOException e) { e.printStackTrace(); } }); thread.start(); } } } ``` 这个示例代码创建了一个包含多个URL的字符串数组,并使用多线程循环遍历每个URL。每个线程都会创建一个HTTP连接,并发送一个GET请求。当服务器响应时,将打印响应代码。注意,这种方法可能会对服务器造成较大的负载,因此请确保不要过度使用。 还有一种使用异步请求的方法是使用Java 11中引入的CompletableFuture类。以下是一个示例代码: ```java import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.Arrays; import java.util.List; import java.util.concurrent.CompletableFuture; public class AsyncHttpRequest { public static void main(String[] args) { List<URI> uris = Arrays.asList( URI.create("http://www.example.com/page1"), URI.create("http://www.example.com/page2"), URI.create("http://www.example.com/page3") ); HttpClient client = HttpClient.newBuilder().build(); for (URI uri : uris) { CompletableFuture<HttpResponse<String>> futureResponse = client.sendAsync( HttpRequest.newBuilder(uri).GET().build(), HttpResponse.BodyHandlers.ofString()); futureResponse.thenAccept(response -> { System.out.println("Response code for " + uri + " is " + response.statusCode()); }); } } } ``` 这个示例代码创建了一个包含多个URI的URI列表,并使用循环遍历每个URI。使用Java 11中的HttpClient类创建了一个异步请求,并使用CompletableFuture类等待响应。当服务器响应时,将打印响应代码。这种方法可能对服务器的负载较小,因为它使用异步请求来发送HTTP请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值