Post by clabaldo on Open dialog from ST previous to version 3.5.16
CODESYS Forge
talk
(Post)
I have found a similar topic but tried to run it in C3.5.16 and the visualization crashed. https://forge.codesys.com/forge/talk/Engineering/thread/8be0f6f14a/ My question is what is the easiest way to run a dialog from ST, as we need an external device to open the dialog so we cannot use the button on the display itself.
Last updated: 2024-03-22
Post by esave on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
Thank you very much Florian The SoftMotionLight package is actually more expencive than the normal SoftMotion. What is exactly the difference? Does my PLC need to be compatible with SoftMotion or does this work with any PLC?
Last updated: 2024-03-22
Open dialog from ST previous to version 3.5.16
CODESYS Forge
talk
(Thread)
Open dialog from ST previous to version 3.5.16
Last updated: 2024-03-22
Problem with simulation Modbus
CODESYS Forge
talk
(Thread)
Problem with simulation Modbus
Last updated: 2024-03-22
Post by ph0010421 on Stepper Drive with Ethercat
CODESYS Forge
talk
(Post)
Hello That's certainly CiA402. I'll attach a part of the manual for my servos, but the state diagram should be the same at yours. To be sure, get one from your manufacturer. Look at the bits in the StatusWord to see where you are in the diagram, then twiddle the bits in the ControlWord to get you to the next step. Then there are other bits in the StatusWord to tell you 'InPosition' and things like that. From the screenshot, as it mentions only 'PositionProfile' the driver will create the motion profile. So you need to put a target position in here - there should be profile velocity somewhere? Possibly, you need to write these with SDO's? At the minimum, you need to write a value to 0x6081, 0x6083 and 0x6084 (velocity, accel, decel)
Last updated: 2024-03-22
wiki Discussion
ara32
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-03-22
blog Discussion
ara32
blog
(Discussion)
Forum for blog comments
Last updated: 2024-03-22
(no subject)
ara32
wiki
(Thread)
Last updated: 2024-03-22
Post by tk096 on High Cycle Times for SoftMotion_PlanningTask when using AxisGroup
CODESYS Forge
talk
(Post)
Hi, under this circumstances the performance of a Raspberry Pi 4 should be sufficient to run a Softmotion robotics application. A closer look at the project would be required. Maybe you could contact the codesys support? Usually it is recommended to run the planning task cyclically every 2ms with task priority of 0 on a dedicated core. In the task configuration you can have a look at the average and maximum execution time of the planning task. You could use the function block SMC_TuneCPKernel (https://content.helpme-codesys.com/en/libs/SM3_Robotics/Current/SM3_Robotics/POUs/AdministrativeConfiguration/Computation/SMC_TuneCPKernel.html) to define suitable values for the parameters 'fSyncBufferDuration' and 'fPlanningInterval'. However, as previously mentioned, the performance of a Raspberry Pi 4 with realtime patch should be sufficient. The 'fPlanningInterval' parameter specifies the maximum planning step width in seconds. The cycle time of the planning task should not permanently exceed this value. A higher value reduces the computational effort, but can lead to a violation or no full utilization of the set limit values for velocity, acceleration and jerk. From a starting value of 0.016 seconds, the value should be increased gradually until the performance is acceptable. The parameter 'fSyncBufferDuration' specifies the size (in seconds) of the buffer between the planning and fieldbus task. The cycle time of the planning task must not exceed this value at peak times (this will lead to the error SMC_CP_QUEUE_UNDERRUN). A higher value can compensate for peaks in the cycle time of the planning task. At the same time, however, this also increases the latency for executing interrupts and aborting movements.
Last updated: 2024-03-22
Post by ara32 on CODESYS 4 Linux:
CODESYS Forge
talk
(Post)
Hello! I managed to correctly launch CODESYS Developer Studio 3.5.17, almost all functionality works. The only issue remaining is that when connecting to a device and obtaining its public key, the NCryptEncrypt function is called, which is not fully implemented in the DLL source code, resulting in the connection not being established. Currently, the code of this function in the Wine repository looks like this: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG || flags & NCRYPT_PAD_OAEP_FLAG) { FIXME("No padding and oaep padding not supported\n"); return NTE_NOT_SUPPORTED; } if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } The program crashes due to the NCRYPT_PAD_OAEP_FLAG flag. I'm not proficient in C++, but I attempted to add handling myself, and here's the result: SECURITY_STATUS WINAPI NCryptEncrypt(NCRYPT_KEY_HANDLE key, BYTE *input, DWORD insize, void *padding, BYTE *output, DWORD outsize, DWORD *result, DWORD flags) { struct object *key_object = (struct object *)key; TRACE("(%#Ix, %p, %lu, %p, %p, %lu, %p, %#lx)\n", key, input, insize, padding, output, outsize, result, flags); if (flags & ~(NCRYPT_NO_PADDING_FLAG | NCRYPT_PAD_OAEP_FLAG | NCRYPT_PAD_PKCS1_FLAG | NCRYPT_SILENT_FLAG)) { FIXME("Flags %lx not supported\n", flags); return NTE_BAD_FLAGS; } if (flags & NCRYPT_NO_PADDING_FLAG) { FIXME("No padding not supported\n"); return NTE_NOT_SUPPORTED; } BCRYPT_OAEP_PADDING_INFO oaepInfo = { 0 }; oaepInfo.pszAlgId = BCRYPT_SHA1_ALGORITHM; NTSTATUS status = BCryptEncrypt(key_object->key.bcrypt_key, input, insize, &oaepInfo, NULL, 0, output, outsize, result, flags); if (key_object->type != KEY) return NTE_INVALID_HANDLE; return map_ntstatus(BCryptEncrypt(key_object->key.bcrypt_key, input, insize, padding, NULL, 0, output, outsize, result, flags)); } Now, when calling the connection, it crashes with the error "bcrypt:BCryptEncrypt flags 0x4 not implemented." Can anyone help with enhancing this functionality or at least point me in the right direction?
Last updated: 2024-03-22
CODESYS 4 Linux:
CODESYS Forge
talk
(Thread)
CODESYS 4 Linux:
Last updated: 2024-03-22
Post by manuknecht on High Cycle Times for SoftMotion_PlanningTask when using AxisGroup
CODESYS Forge
talk
(Post)
Hi, thanks a lot for the response. I did check all these parameters, but if the PlanningTask takes up to 60 ms, I can't increase the Buffer to such values. I contacted the Codesys support with a projectarchive. Let's see if they can help. Thanks again for your great support!
Last updated: 2024-03-22
Home
ara32
wiki
(WikiPage)
Project Members: ara32 (admin)
Last updated: 2024-03-22
wiki Discussion
dagsupport
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-03-22
blog Discussion
dagsupport
blog
(Discussion)
Forum for blog comments
Last updated: 2024-03-22
(no subject)
dagsupport
wiki
(Thread)
Last updated: 2024-03-22
Home
dagsupport
wiki
(WikiPage)
Project Members: dagsupport (admin)
Last updated: 2024-03-22
Post by dagsupport on CAA SerialCOM - hCom Reset max value 1023
CODESYS Forge
talk
(Post)
Hi everybody We are currently working on a project with an RS232 serial COM interface and using the CAA SerialCOM library. We have it working fine reading and writing data, although we have found an issue we cannot resolve and any suggestions would be helpful. We have noticed that after a while the RS232 stops working. We have tracked this down to the HANDLE hCom keeps increasing and when this reaches 1023 the COM returns an unknown error "5003". Is there a way to reset this hCom reference? Thanks Richard
Last updated: 2024-03-22
Post by timvh on CAA SerialCOM - hCom Reset max value 1023
CODESYS Forge
talk
(Post)
You should only open de COM port once and then leave it open. This hCom should not keep on incrementing. (off course when you are done communicating, you need to close the COM port)
Last updated: 2024-03-22
wiki Discussion
araneus
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-03-22
blog Discussion
araneus
blog
(Discussion)
Forum for blog comments
Last updated: 2024-03-22
(no subject)
araneus
wiki
(Thread)
Last updated: 2024-03-22
Home
araneus
wiki
(WikiPage)
Project Members: araneus (admin)
Last updated: 2024-03-22
Home (version 1) discussion
callumo1
wiki
(Thread)
Home (version 1) discussion
Last updated: 2024-03-23
wiki Discussion
phoward131
wiki
(Discussion)
Forum for wiki comments
Last updated: 2024-03-22