问题标签 [fins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15313 浏览

c# - 从 C# 向 PLC 发送 FINS 命令

我尝试通过 UDP 从 PC (C#.NET) 向 PLC 以太网模块 (Omron) 发送FINS命令,但没有从 PLC 得到任何响应,也不知道从哪里开始进行故障排除。

PLC 有一个非常简单的梯形逻辑如下:如果DM100值为#0001,则触发输出101.00。(这里,“Trigger”只是内存区域的符号名D100,“Output”是输出的符号101.00在此处输入图像描述

然后我写了一段C#来执行“内存区域写入”的FINS命令,它的命令代码是01 02,后面是开始地址,要写入的项目数和数据。C# 代码应将 # 值写入0001PLC 的D100区域以在 上触发 ON 101.00

[删除了不起作用的代码]..

输出101.00没有被触发,我也没有收到任何异常。我已确定以下内容:

  1. 端口、节点和地址配置正确,已通过 CX-Programmer 中的“在线工作”确认。我还 ping 每个 IP 以确保节点已连接。
  2. UdpClient代码是有效的,因为我编写了一个非常简单的服务器/客户端代码,可以成功发送和接收数据包。
  3. 梯形逻辑没有问题。我将梯形图传输到 PLC 并在监视模式下通过在线工作进行测试并D100手动设置值。

我怀疑数组中有错误fins_cmnd,但从我的代码中可以看出,我对每个值都做了尽可能详细的注释;我不可能发现自己缺少任何东西。我怀疑我可能没有正确解析十六进制,但同样,我没有例外来指导我。

我不知道在哪里以及如何进行故障排除。希望这里有FINS编程或PLC经验的人能给我一些帮助。

[ANSWER]
感谢Porge的链接 - 这让我发现了问题。经过几条小径终于让它工作了。有关工作代码,请参见下文。

0 投票
2 回答
5573 浏览

c# - 挂在 Socket.Receive 上,无一例外

我有 WPF C# 应用程序,它使用 FINS 命令/帧通过以太网(UDP 数据包)与 PLC 通信(即写入/读取 Omron PLC 的内存地址)。

我可以成功地向WRITE PLC 地址发送命令,但是在READ命令期间尝试从 PLC 获取响应时应用程序挂起/崩溃。

要从 PC 发送到 PLC 的 FINS 数据包帧:

以下代码是我的 Socket 发送和接收:

我也尝试使用Try-Catch,但在应用程序挂起期间没有捕获到异常。我检查了eventvwr,上面写着:

来源: Application Hangs - "...stopped interacting with Windows and was closed" 详细信息(screenshot below)

在此处输入图像描述

0 投票
1 回答
3891 浏览

vb.net - 从 VB.net 向 PLC 发送 FINS 命令

我有一个简单的 vb.net 程序,我正在尝试发送 FINS 命令并使用 UDP 接收响应。我一直使用以下问题作为参考点FINS Commands C#,但相信我的数据包有问题,或者我只是没有完全正确。

我当前的程序有 4 个文本框(TBIP, TBPORT, TBSEND, TBReceive)。当我运行程序时,我输入要发送的 IP、端口、数据包信息,然后单击一个按钮。我想要发生的是收到的信息发送到TBReceive

我的表单加载代码如下所示:

我的按钮点击:

我的计时器:

在欧姆龙 PLC 上,我正在尝试读取 CIO 100。我的 IP 地址是 10.0.1.91,所以我的字符串在下面。(5B 是最后一个八位字节):

为了便于阅读,我在 HEX 位之间添加了空格。

第一个问题可能是我正在转换或尝试将信息作为 ASCII 发送吗?任何帮助,将不胜感激。

0 投票
1 回答
740 浏览

tcp - 如何通过交换机将 CP1L (Omron) FINS/TCP 连接到 (Keyence) DL-EP1

好吧,这可能是不可能的,或者我可能是个白痴,但就是这样。我正在尝试通过开关将 Omron CP1L PLC 连接到 Keyence DL-EP1。到目前为止,我已将 PC 连接到开关中,并将我的 PLC 连接到开关中,并且 Keyence 通信 DL-EP1 也连接到开关中。我可以毫无问题地通过 PC 独立 ping 这两个。但是,我在让 PLC 和 DL-EP1 通过 CXProgrammer 一起通信时遇到问题。

任何帮助深表感谢。

谢谢

0 投票
0 回答
438 浏览

c# - 如何连接 UDP Fins Gateway DotNet?

我正在尝试连接到仅支持 UDP 连接的 Omron PLC (NX1P2)。我在互联网上找不到用于 UDP 连接的免费工作库或示例。

感谢帮助。

0 投票
1 回答
603 浏览

java - FINS OMRON PLC Java 命令故障排除

简单地说,我很难为 PLC 准备正确的 FINS 命令。

拓扑:

  • PC(带有Java应用程序)IP:10.1.0.57
  • 欧姆龙 CS1 PLC IP:10.1.0.50

现在尝试为 D0100 地址准备消息。消息如下所示:

所以:

根据文档,一切似乎都很好,但我收到的答案有 16 个字节,看起来像这样:

套接字在第二次读取尝试后崩溃。

编辑:我设法在消息的开头添加了 FINS Header:

应该是:

现在 Socket 并没有崩溃,但是,如果我试图读取任何内容,则没有数据。我错过了什么?我应该在哪里解决问题?我无法直接访问 PLC,但我可以在同一台 PC 上的 OPC Server 中看到数据流。

提前致谢。亚当