Open the CODESYS installer (you can open this as stand-alone tool, or from CODESYS Tools menu). Then go to Browse, search for Git and select install.
If you are really happy with PLCnext engineer, then just use that. There is probably also something in CODESYS that cannot be done in PLCnext engineer. But if you are forced to make something like this in CODESYS, then maybe just use CFC instead of FBD.
A standard string is actually a list of bytes that represent the ASCII code for each character. The following part of code will give you the ASCII code of one of the characters in the string: byChar := sInput[i];
Go in Windows to this location. Right click on this file and go to properties. Is it in Read-only state? Then CODESYS cannot open in Write mode.
A branch is a branch (doesn't grow back to the tree). But what you are trying to do is use several XORs. See attachement.
Nice puzzle for a Saturday afternoon :-). Here my suggestion: VAR sInput : STRING := 'R123'; byChar : BYTE; sOutput : STRING; i: INT; END_VAR sOutput := ''; IF LEN(sInput) = 0 THEN RETURN; END_IF FOR i := 0 TO LEN(sInput) - 1 DO byChar := sInput[i]; sOutput := Concat(sOutput, TO_STRING(byChar)); END_FOR
The Modbus Master example must work. We have used this several times on multiple projects. See https://forge.codesys.com/prj/codesys-example/modbus/home/Home/
You can enable "Sync Producing" in the configuration of the CANopen Manager. Then this manager will send a SYNC message every interval you set. Depending on your PDO configuration, the CAN nodes can send a PDO on every Sync (cyclic-synchronous). If this is not possible, then as alternative you can send a low level CAN message with COB-ID 16#80.