问题标签 [ladder-logic]
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.
plc - 如何在梯形逻辑中设置无限定时器?
我是梯形逻辑的新手。下面链接的程序运行一个计时器,并更新每个“帧”之间的增量时间。
https://www.plcfiddle.com/fiddles/e56c6cf0-d858-4327-b291-7cdc1067ffc1
定时器的预设值设置为 10,因此定时器在 10 秒后停止。我希望这个计时器无限期地运行。我的第一个猜测是将预设值设置为 0(或负数),但这会阻止计时器运行。
如何使此功能无限期运行?
vb.net - 将字节写入 PLC 设备
我正在处理PLC
设备和我的公司之间的连接PC
。这PLC
是已知的Siemens S7-200
,我正在使用vb.NET
. 可能我应该使用另一种语言,但这vb.NET
是我更习惯的语言。为此,我还使用PPI
协议COM1
和 LibNoDave
库来建立连接。
我正在测试的程序必须有Input 0.0
On
,所以我附加了一个开关来实现它。我还做了一个vb console
读取(和写入) and 的状态Inputs
(Outputs
作为LED
设备上的物理指示器)以及 的状态Bit memories
:
控制台阅读器(LEITOR
部分 - 抱歉)按我的预期工作,如果是这种情况,所有 Q、I 和 M 都正确亮起。
问题是,要运行PLC
程序,我还必须点亮Q 1.1
。Ladder Network
描述这一点的具有以下逻辑映射:
我知道我必须使用代码:
该代码工作正常,没有错误并建立连接(直到最后一个RESponse
)。
这是问题所在:我可以通过执行以下操作来点亮Output 1.1
(在设备上和 上console
):
在哪里
通过将这两个步骤再重复五次(再一次,30
再用两次50
,最后再用 两次50
)。
我很确定我做错了什么,但是对于像我这样的人(刚刚开始),网上并没有很多这些命令描述。
谁能解释发生了什么?还有,我怎么能Q 1.1
一步点亮?
plc - PLC“程序计数器”概念
我是 PLC 梯形图/grafcet 编程的新手。
我有一个自己的 Windows 应用程序,它将写入 OMRON PLC 存储器(D 寄存器)。这个想法是填充将触发一些输出的内存块(梯形编程)。
例如,想象一个 5 个字的内存块(D0000 到 D0004)。输出将由这 5 个字的内容触发。
我的想法是有一个简单的梯形程序来“运行”内存块。所以每 5 个内存块将包含“指令”来激活我的输出。
我很难:也许我可以像“程序计数器”概念那样实现,其中程序计数器指向前 5 个单词,并将其内容共同/移动到内存上的一个一般位置,这将触发梯形程序的合同。然后在前 5 个字执行后,程序计数器将指向下一个 5 个字块以再次复制其内容,梯形图程序执行其“指令”并将其保留为未定义数量的 5 个字块。
我不确定我是否能够澄清我的想法。有没有办法使用 PLC 梯形逻辑来实现这一点?
或者还有其他方法可以实现这样的事情吗?
请记住,这个想法是拥有内存块(由固定数量的字组成),并且每个内存块都将在其位上具有必要的配置以触发必要的输出(使用相同的梯形图/程序)。
任何帮助或更好的想法将不胜感激。非常感谢
这是与 OMRON C2JM PLC 一起使用的。
arrays - 如何在 Studio 5000 Logix Designer 梯形逻辑中将字符数组转换为字符串
我有一个条形码扫描仪,它通过 RS232 与 1756-L75 ControlLogix PLC 通信。
来自扫描仪的数据逐字节读取,并以SINT
字符形式存储在数组中。它包括标题和条形码数据。条形码数据的长度是可变的。
我需要将此字符数组转换为正确的STRING
数据类型。
我知道我可以将数组复制到字符串的数据部分,但我正在寻找填充长度的最佳方法。
是否有内置指令可以自动执行此操作,或者我需要计算它吗?
raspberry-pi - How do I use system time as a trigger in codesys ladder?
Programming a raspberry pi with codesys, using mostly ladder, basically I need to write all data that is currently in a couple arrays to a csv file at midnight, so i'd like to be able to use a dt value as a trigger. I can't figure out how to use that value in ladder, however. I can display the local time on visualizer, but if i wanted something like "if localTime=#value" then coil 'Write' turns on, where is the actual variable for system time?
java - ladder, 1 or 2 rungs at a time, recursion / fibonacci error
I know there are a lot of already existing questions about this problem, but I haven't found anything that answers mine. My recursion is working fine for lower numbers (I tried int 10) but when I expand it to 100, it becomes exactly one step lower than it should. Not sure why.
My code:
test code:
I'm told the output should be 57314784401381708410
, but I'm getting 3736710778780434371
(which is the fibonacci number at the 99th step). Any ideas why?
codesys - Codesys LD:如何从一个进程跳转到另一个进程
我是 Codesys 梯形图编程的新手。我们正在将我们的梯形图应用程序转换为 Codesys LD。我们的应用程序有几个过程。每个进程处理不同的主题。每个进程都由来自另一个进程的 Jump To Subprocess 元素激活。例如: MainProcess: Rung1: if Relay is Open->Jump to Process1; 如果中继关闭 - 跳转到 Process2 Process1{} Process2{}
我正在寻找一种方法来使用 Syscode LD 实现相同的事情(从一个进程跳转到另一个进程)。
谢谢
plc - 如何让我的梯子 plc 隐藏?我想对其他人保密?
如果我想在 step7 上创建一个梯形图。之后我想对其他人保密?